Форум программистов, компьютерный форум CyberForum.ru

работа с файлом через входной параметр - C++

Восстановить пароль Регистрация
 
 
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
08.01.2014, 12:08     работа с файлом через входной параметр #1
C++
1
2
3
int _tmain(int argc,char* argv[])
{
FILE* F =fopen(argv[1], "wt+");
когда пишу параметр запуская через командную строку или ярлык, создается файл с первой буквой параметра, и туда записывается все что надо. Параметр писал и с полным указанием пути "C:\...." в итоге он называл файл С, писал параметр "input" файл создавался i, ставил кавычки, не помогло, подскажите, то-ли я тупой, то-ли лыжи не едут.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.01.2014, 12:08     работа с файлом через входной параметр
Посмотрите здесь:

C++ Работа с файлом через классы
C++ Работа с файлом через класс
C++ Определить функцию для расчета суммы цифр натурального числа. Входной параметр – число. Возвращаемое значение – сумма.
Определить функцию для расчета суммы цифр натурального числа. Входной параметр – число. Возвращаемое значение – сумма C++
C++ Работа с текстовым файлом (название файлы через переменную)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 12:23     работа с файлом через входной параметр #2
Вот так напишите, скомпилируйте, сделайте запуск из командной строки (с вашим вводом параметров) и покажите скрин окна командной строки, после отработки:
C++
1
2
3
4
int _tmain(int argc,char* argv[])
{
    cout << argv[1] << endl;
    FILE* F =fopen(argv[1], "wt+");
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
08.01.2014, 12:26     работа с файлом через входной параметр #3
Цитата Сообщение от Layzie Посмотреть сообщение
когда пишу параметр запуская через командную строку или ярлык, создается файл с первой буквой параметра, и туда записывается все что надо.
argv это массив указателей на строки, вы получается указываете в имени файла при создании указатель на первую(точнее вторую строку, первая это имя программы). А указатель на строку это не что иное как адрес её первого элемента.
Я бы сначала считал параметр в тип string, а в дальнейшем указал бы переменную типа string в качестве имени файла
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 12:28     работа с файлом через входной параметр #4
танкист34, воду не мутите, всё и так работает.
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
08.01.2014, 12:35     работа с файлом через входной параметр #5
Цитата Сообщение от alsav22 Посмотреть сообщение
танкист34, воду не мутите, всё и так работает.
я воду и не мутю, а предложил как вариант и не заставляю им пользоваться да и если бы работало, человек бы не спрашивал
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
08.01.2014, 12:39  [ТС]     работа с файлом через входной параметр #6
https://downloader-default13m.disk.y...stamp=52cd0ebf
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 12:40     работа с файлом через входной параметр #7
Цитата Сообщение от танкист34 Посмотреть сообщение
а предложил как вариант
Предлагать не запрещается, но нужно и подумать прежде чем предлагать.
Цитата Сообщение от танкист34 Посмотреть сообщение
а в дальнейшем указал бы переменную типа string в качестве имени файла
Вы в курсе, что fopen() не знает, что такое string? Ей нужен именно указатель на char, что она и получает, а почему не работает у ТС нужно разбираться, у меня же работает.
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
08.01.2014, 12:41  [ТС]     работа с файлом через входной параметр #8
Цитата Сообщение от танкист34 Посмотреть сообщение
argv это массив указателей на строки, вы получается указываете в имени файла при создании указатель на первую(точнее вторую строку, первая это имя программы). А указатель на строку это не что иное как адрес её первого элемента.
Я бы сначала считал параметр в тип string, а в дальнейшем указал бы переменную типа string в качестве имени файла
вашим способом пробовал, может и криво пробовал, но где то говорилось о не соответствии типов, вроде бы
C++
1
FILE* F =fopen(argv[1], "wt+");
функция fopen первым параметром просила char* а не string
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 12:41     работа с файлом через входной параметр #9
Layzie, если это ссылка не скрин, то нужно здесь выкладывать. Расширенный режи сообщения, управление вложениями.
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
08.01.2014, 12:45  [ТС]     работа с файлом через входной параметр #10
так?
Миниатюры
работа с файлом через входной параметр  
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 12:52     работа с файлом через входной параметр #11
Чудеса... Весь код покажите.
Убежденный
Системный программист
 Аватар для Убежденный
14191 / 6206 / 985
Регистрация: 02.05.2013
Сообщений: 10,339
Завершенные тесты: 1
08.01.2014, 13:01     работа с файлом через входной параметр #12
Вот почему я никогда не использую ни _tmain, ни wmain.
У Вас проект настроен на Юникод (Character Set - Use Unicode Character Set),
поставьте там "Use Multi-Byte Character Set" и тогда заработает.
А еще лучше - используйте название main.

Не по теме:

Отключать Юникод - это не путь джедаев... Если нужна переносимость на
разные локализации - используйте GetCommandLineW/CommandLineToArgvW.

alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 13:08     работа с файлом через входной параметр #13
Убежденный, специально пробовал с Юникодом в проекте (но с main), тоже всё работало. Или влияет именно _tmain в сочетании с Юникодом?
Убежденный
Системный программист
 Аватар для Убежденный
14191 / 6206 / 985
Регистрация: 02.05.2013
Сообщений: 10,339
Завершенные тесты: 1
08.01.2014, 13:09     работа с файлом через входной параметр #14
Да, именно _tmain.
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
08.01.2014, 13:18  [ТС]     работа с файлом через входной параметр #15
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int _tmain(int argc,char* argv[])
{
cout << argv[1] << endl;
FILE* F =fopen(argv[1], "wt+");
if(argc==2)
{
cout<<"vvedite kol-vo treugolnikov";
int n;
cin>>n;
treangle* O;
O=new treangle[n];
for(int i=0;i<n;i++)
    {cout<<"treangle"<<i+1<<": \n";
    O[i].input();
    char Y[17*3]={'(',(O[i].A.x+'0'),',',(O[i].A.y+'0'),')',',','(',(O[i].B.x+'0'),',',(O[i].B.y+'0'),')',',','(',(O[i].C.x+'0'),',',(O[i].C.y+'0'),')',';'};
    fputs(Y,F);
    }
}
fclose(F);
return 0;
}
Добавлено через 1 минуту
вот большое спасибо, изменил _Tmain на main и все стало работать, можете объяснить в чем разница и что на что влияет?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 13:20     работа с файлом через входной параметр #16
Цитата Сообщение от Layzie Посмотреть сообщение
вот большое спасибо, изменил _Tmain на main
Почему, вообще, _tmain пишите? Или это среда так пишет?
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
08.01.2014, 13:28  [ТС]     работа с файлом через входной параметр #17
да, оно само, я в шапке почти никогда ничего не трогал
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 13:31     работа с файлом через входной параметр #18
Цитата Сообщение от Layzie Посмотреть сообщение
да, оно само, я в шапке почти никогда ничего не трогал
Среда какая?
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 87
08.01.2014, 13:32  [ТС]     работа с файлом через входной параметр #19
Visual studio 2008 express
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.01.2014, 13:35     работа с файлом через входной параметр
Еще ссылки по теме:

Возврат значения через параметр функции C++
Указатель как входной параметр функции C++
Быстрее ли вывов функции, переданной через параметр шаблона, чем через простой указатель на функцию? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
08.01.2014, 13:35     работа с файлом через входной параметр
  #20

Не по теме:

Можно же без шаблонов проекты создавать: Общие - Пустой. Там что напишешь, то и будет, ничего лишнего.

Yandex
Объявления
08.01.2014, 13:35     работа с файлом через входной параметр
Ответ Создать тему
Опции темы

Текущее время: 05:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru