Я хочу прочитать файл и посчитать слова. Я хочу, чтобы он был настроен, поэтому я могу использовать командную строку или, если в командной строке не указан файл, чтобы вызвать оператор if, который получит имя файла и прочитает его, а затем подсчитайте слова. Он работает, если я набираю имя файла в командной строке, но если он не используется, это приведет к ошибкам seg. Вот код:Почему я получаю seg-ошибку с моим заявлением if?
int main(int argc, char **argv)
{
char file[75];
if (argc < 2)
{
cout << "Please enter the filename: ";
cin >> file;
strcpy(argv[1], file);
}
string content;
ifstream inFile(argv[1]);
int count = 0;
while (inFile >> content)
count++;
inFile.close();
display(count, argv);
return 0;
}
Это UB: 'зЬгср (ARGV [1], файл) ; ' – drescherjm
Если' argc' меньше 2, то каковы действительные индексы для 'argv'? – NathanOliver
Пробовал ли вы использовать отладчик для взлома кода после его сегментации? Что это вам сказал? Обучение использованию отладчика - очень хорошая практика. Вы должны попробовать это, даже после того, как вы получите ответ здесь, чтобы убедиться, что вы видите, как вы могли бы понять это для себя в будущем. –