जब मैं "lotto.cpp" नामक सी ++ में थोड़ा लोट्टो प्रोग्राम लिखता हूं तो मैं वास्तव में कुछ अजीब बात करता हूं। सब कुछ ठीक था जब तक कि मैंने अपने कार्यक्रम के लिए लिखने के लिए फ़ाइल नहीं लिखा। जब मैं संकलित, यह मेरे निम्न त्रुटि से पता चला है:स्रोत फ़ाइल का नाम संकलन को क्यों प्रभावित करता है?
ld: can't open output file for writing: lotto, errno=21 for architecture x86_64
collect2: ld returned 1 exit status
संयोग से, मैं करने के लिए "1.cpp" मेरे कार्यक्रम का नाम बदल दिया, और अचानक यह समस्याओं के बिना संकलित। जब मैंने नाम को "test.cpp" में बदल दिया तो यह भी काम करता था।
मैं वास्तव में उत्सुक हूं कि ऐसा क्यों हुआ। कोई विचार?
यह मैकबुक प्रो पर हुआ।
यदि आप कोड भी चाहते हैं, तो बस मुझे बताएं!
मुझे पता है कि कुछ लोगों ने कोड के लिए कहा था। संदेश यह है:
#include <iostream>
#include <fstream>
using namespace std;
const int NED = 10;
const int VIKING = 6;
const int NORMAL = 7;
const int MAX = 10;
void quickSort(int arr[], int left, int right);
int checkDuplicates(int arr[], int length);
int main (int argc, const char *argv[])
{
int i, j, k, ans;
char ans2;
int lottoNumbers[MAX];
ofstream out("Lotto.txt", ios::out | ios::app);
srand((unsigned)time(NULL));
do
{
do
{
cout << "\n\nDo you want to play Viking Lotto (press 6), or normal Lotto (press 7): ";
cin >> ans;
}while(ans != VIKING && ans != normal);
(ans == VIKING) ? cout << "\nViking Lotto:\n" : cout << "\n\nnormal Lotto:\n";
(ans == VIKING) ? out << "\nViking Lotto:\n" : out << "\n\nnormal Lotto:\n";
for (i = 0; i < NED; i++) //10 rows
{
for (j = 0; j < ans; j++) //6 or 7 columns
{
(ans == VIKING) ? lottoNumbers[j] = (rand() % 48) + 1 : lottoNumbers[j] = (rand() % 34) + 1;
}
if(checkDuplicates(lottoNumbers, ans) != -1)
{
for(k = 0; k < ans; k++)
{
while(checkDuplicates(lottoNumbers, ans) == lottoNumbers[k])
{
(ans == VIKING) ? lottoNumbers[k] = (rand() % 48) + 1 : lottoNumbers[k] = (rand() % 34) + 1;
}
}
}
quickSort(lottoNumbers, 0, ans - 1);
cout << '\n';
for(j = 0; j < ans; j++)
{
cout << lottoNumbers[j] << '\t';
out << lottoNumbers[j] << '\t';
}
out << '\n';
}
cout << "\n\n";
cout <<"Another lottery ticket (Y/N) ";
cin >> ans2;
}while(ans2 == 'j' || ans2 == 'J');
cout << "\n\nLOTTO NUMBERS WAS WRITTEN TO FILE...\n\n";
return 0;
}
void quickSort(int arr[], int left, int right)
{
int i = left, j = right;
int tmp;
int mid = arr[(left + right)/2];
while (i <= j)
{
while (arr[i] < mid) i++;
while (arr[j] > mid) j--;
if (i <= j)
{
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
if (left < j) quickSort(arr, left, j);
if (i < right) quickSort(arr, i, right);
}
int checkDuplicates(int arr[], int length)
{
for(int i = 0; i < length; i++)
{
for(int j = i + 1; j < length; j++)
{
if(arr[i] == arr[j]) return arr[j];
}
}
return -1;
}
कृपया कोड दें। ऐसा लगता है कि आप बिना किसी अनुमति के फ़ाइल संपादित कर रहे हैं। – beta0x64
इसके अलावा, अपनी निर्देशिका संरचना (dir और अंदर फ़ाइलों का नाम) – beta0x64
त्रुटि 21 की आपूर्ति कृपया '/ usr/शामिल/sys/errno.h' है' EISDIR', आप एक निर्देशिका में लिखने की कोशिश कर रहे थे? – Gaius