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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89
#1

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

08.01.2014, 12:08. Просмотров 566. Ответов 20
Метки нет (Все метки)

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++
#include <iostream> const int Max = 5; int* fill_array(double ar, int limit); void show_array(const double ar, int* n) ; int*...

Работа с файлом через классы - C++
Привет всем! Может кто помочь, как работать с файлами (открыть, закрывать, читать из файла, записывать в файл)через классы, объяснить на...

Работа с файлом через класс - C++
Доброй ночи всем! Хочу реализовать открытие файла для чтения из конструктора класса CTextFile: #ifndef ___TEXT_FILE___ #define...

Работа с текстовым файлом (название файлы через переменную) - C++
доброго времяни суток,подскажите хочу ввести в кансоль переменную типа строка,а затем создать и открыть файл название каторого есть эта...

Определить функцию для расчета суммы цифр натурального числа. Входной параметр – число. Возвращаемое значение – сумма - C++
Помогите написать пожалуйста программу на C++ Oпределить функцию для расчета суммы цифр натурального числа. Входной параметр – число....

Определить функцию для расчета суммы цифр натурального числа. Входной параметр – число. Возвращаемое значение – сумма. - C++
Помогите пожалуйста написать программу на с++ очень нужно Определить функцию для расчета суммы цифр натурального числа. Входной параметр...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5416 / 4812 / 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
5416 / 4812 / 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
Сообщений: 89
08.01.2014, 12:39  [ТС]     работа с файлом через входной параметр #6
https://downloader-default13m.disk.y...stamp=52cd0ebf
alsav22
5416 / 4812 / 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
Сообщений: 89
08.01.2014, 12:41  [ТС]     работа с файлом через входной параметр #8
Цитата Сообщение от танкист34 Посмотреть сообщение
argv это массив указателей на строки, вы получается указываете в имени файла при создании указатель на первую(точнее вторую строку, первая это имя программы). А указатель на строку это не что иное как адрес её первого элемента.
Я бы сначала считал параметр в тип string, а в дальнейшем указал бы переменную типа string в качестве имени файла
вашим способом пробовал, может и криво пробовал, но где то говорилось о не соответствии типов, вроде бы
C++
1
FILE* F =fopen(argv[1], "wt+");
функция fopen первым параметром просила char* а не string
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 12:41     работа с файлом через входной параметр #9
Layzie, если это ссылка не скрин, то нужно здесь выкладывать. Расширенный режи сообщения, управление вложениями.
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89
08.01.2014, 12:45  [ТС]     работа с файлом через входной параметр #10
так?
Миниатюры
работа с файлом через входной параметр  
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 12:52     работа с файлом через входной параметр #11
Чудеса... Весь код покажите.
Убежденный
Системный программист
Эксперт С++
15247 / 6879 / 1092
Регистрация: 02.05.2013
Сообщений: 11,255
Завершенные тесты: 1
08.01.2014, 13:01     работа с файлом через входной параметр #12
Вот почему я никогда не использую ни _tmain, ни wmain.
У Вас проект настроен на Юникод (Character Set - Use Unicode Character Set),
поставьте там "Use Multi-Byte Character Set" и тогда заработает.
А еще лучше - используйте название main.

Не по теме:

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

alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 13:08     работа с файлом через входной параметр #13
Убежденный, специально пробовал с Юникодом в проекте (но с main), тоже всё работало. Или влияет именно _tmain в сочетании с Юникодом?
Убежденный
Системный программист
Эксперт С++
15247 / 6879 / 1092
Регистрация: 02.05.2013
Сообщений: 11,255
Завершенные тесты: 1
08.01.2014, 13:09     работа с файлом через входной параметр #14
Да, именно _tmain.
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89
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
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 13:20     работа с файлом через входной параметр #16
Цитата Сообщение от Layzie Посмотреть сообщение
вот большое спасибо, изменил _Tmain на main
Почему, вообще, _tmain пишите? Или это среда так пишет?
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89
08.01.2014, 13:28  [ТС]     работа с файлом через входной параметр #17
да, оно само, я в шапке почти никогда ничего не трогал
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.01.2014, 13:31     работа с файлом через входной параметр #18
Цитата Сообщение от Layzie Посмотреть сообщение
да, оно само, я в шапке почти никогда ничего не трогал
Среда какая?
Layzie
0 / 0 / 0
Регистрация: 28.12.2013
Сообщений: 89
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++
Помогите пожалуйста. Надо подсчитать в файле количество букв &quot;A&quot; и записать это число в конец файла.

Работа с файлом - C++
как изменить код,чтобы можно было при следующем вызове функции, дописывать все эти значения в конец файла,а не переписывать файл заново? ...

Работа с файлом - C++
Помогите доделать программу. Необходимо создать файл структуры: фамилия абонентов, год установки телефона, номер телефона. Программу...

Работа с файлом - C++
В двумерном массиве подсчитать сумму элементов в каждом столбце и вывести ответы в файл! Пример 1 2 3 4 5 6 7 8 9 в файл...


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

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

Не по теме:

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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru