10 / 10 / 7
Регистрация: 03.02.2014
Сообщений: 205
|
||||||
1 | ||||||
Чтение из файла, название передано как параметры функции main argc & argv09.12.2014, 03:34. Показов 5558. Ответов 6
Метки нет (Все метки)
Вообще дано задание - считать из файла чётные строки, название файла должно быть передано как параметр при запуске из командной строки..
Проблема в том, что я вообще ничего оттуда не могу считать. Крашится при запуске с параметром, как доходит до строки с getc. Есть твёрдое убеждение, что файл попросту не открывается в строке с fopen'ом, так как под "синдромы" сей "диагноз" подходит. Файл с названием "a" лежит в папке Release с exe'шником, собранным в одноимённом режиме. При запуске из cmd c параметром "а" доходит до злосчастного getc, после чего "прекращена работа программы lab.exe..."
0
|
09.12.2014, 03:34 | |
Ответы с готовыми решениями:
6
Что есть argc и **argv в функции int main(int argc, char **argv)? Как пользоваться аргументами argc , argv[] ,функции main Гарантируется ли что argv[1] == 0 при argc == 1 в функции main что такое int argc, char *argv[] в качестве параметров главной (main) функции? |
Неэпический
|
|
09.12.2014, 04:10 | 2 |
файл на открытие проверяли?
Добавлено через 1 минуту Рабочий каталог может быть другой. Например, в Visual Studio это будет каталог с проектом, а не каталоги Debug/Release
0
|
10 / 10 / 7
Регистрация: 03.02.2014
Сообщений: 205
|
|
09.12.2014, 07:18 [ТС] | 3 |
Ошибка открытия файла с ошибкой 2, что сие значит?
p.s. в корневую проекта тоже кинул - не проканало.
0
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
|
09.12.2014, 08:47 | 4 |
Имя файла с русскими буквами?
0
|
10 / 10 / 7
Регистрация: 03.02.2014
Сообщений: 205
|
|
09.12.2014, 12:50 [ТС] | 5 |
Нет. Ни одной папки с названием кириллицей в адресе так же нет.
Добавлено через 7 минут Так, насколько понял, проблема всё же в адресации. Честно-то говоря, не представляю, что сей файл считает корневой папкой. При вводе полного адреса до файла (создал копию в корневой диска D, ввёл "C:\Users\User\Documents\Visual Studio 2013\Projects\lab\Release\lab.exe" "D:\\a") выполнилось верно. Кто-нибудь знает, какую директорию он открывает при вводе одного названия файла?
0
|
7793 / 6560 / 2984
Регистрация: 14.04.2014
Сообщений: 28,672
|
||||||
09.12.2014, 12:55 | 6 | |||||
Размести файл по короткому пути (без пробелов), например "d:\myfile.txt" и программу вызывай, указывая полный путь:
Чтобы файл брался из той же папки, где exe, сначала сделай текущей папку, где он находится.
0
|
Форумчанин
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
|
|
09.12.2014, 14:40 | 7 |
Считает за текущую - место вызова.
Если перейти через cd в D:\a и вызвать exe с указание пути - то её (D:\a). Если перейти на C:\Users\User\Documents\Visual Studio 2013\Projects\lab\Release\ то её. Если запускать из студии - файл пытается найти, начиная от ProjectDir (по умолчанию), то есть с папки проекта (где .vcxproj лежит или его аналог).
0
|
09.12.2014, 14:40 | |
09.12.2014, 14:40 | |
Помогаю со студенческими работами здесь
7
Int main(argc, argv) int argc; char **argv; Аргументы main(int argc, char *argv[]) Проверить аргументы командной строки main, argc, argv Подскажите пожалуйста с int main(int argc, char*argv[]) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |