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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.82
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
#1

Вопрос про файловый ввод/вывод - C++

01.02.2009, 11:28. Просмотров 5892. Ответов 6
Метки нет (Все метки)

Есть один глупый вопрос, но он очень меня интересует. Я учу С++ недавно. И вот дошел до файлового ввода вывода. В книге есть пример программы. Вот собственно и он:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <fstream>
using namespace std;
 
int main(int argc, char *argv[])
{
    if (argc != 2) {
        cout << "введите <Имя_Файла>\n";
        return 1;
    }
    ofstream out(argv[1]);
 
    if (!out) {
        cout << "Файл открыть невозможно\n";
        return 1;
    }
 
    char str[80];
    cout << "Вводите строки: \n";
 
    do {
        cout << ": ";
        cin >> str;
        out << str << endl;
    } while (*str != '$');
 
    out.close();
    return 0;
}
Программа осущетсвляет вывод строк в файл, пока не будет введен символ $. Теперь вопрос. Для чего необходима строка:

C++
1
int main(int argc, char *argv[])
Как я понял char *argv[] - безразмерный массив указателей на строки. В этих строка обычно размещают имена файлов, которые будут использовать в программе. Это как я понял для удобства. Я прав или нет? И так же интересует зачем нужна переменная argc?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.02.2009, 11:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вопрос про файловый ввод/вывод (C++):

Задача про Мартышку и Попугая (файловый ввод/вывод) - C++
Даны два прямоугольника, стороны которых параллельны или перпендикулярны осям координат. Известны координаты левого нижнего угла каждого из...

Найти ошибку в задаче на файловый ввод/вывод (задача про МКАД) - C++
Длина Московской кольцевой автомобильной дороги —109 километров. Байкер Вася стартует с первого километра МКАД и едет со скоростью V...

Разработать программу, отображающую информацию про кафедры ВУЗа (файловый ввод/вывод) - C++
Здравствуйте. Помогите, пожалуйста, с программой. Тема: информационно-справочная система недвижимого имущества ВУЗа. Задача: В...

Найти информацию про самый дешевый автомобиль, выпущенный не ранее заданого года (файловый ввод/вывод) - C++
Ребята, помогите написать программу! Задан файл с информацией про автомобили: Марка, стоимость, год выпуска. Найти и вывести на экран...

Заменить в программе, переводящую строку в двоичный код, консольный ввод/вывод на файловый ввод/вывод - C++
Добрый день! Помогите, пожалуйста, с программой. Программа считывает строку с клавиатуры и переводит её в двоичный код. затем наоборот...

Поменять консольный ввод-вывод на файловый ввод-вывод - C++
вот у меня калькулятор как мне сделать что б числа вводились из файла и результат записывался в новый файл ? // ОБРАТНАЯ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Otaka
1824 / 680 / 18
Регистрация: 11.12.2008
Сообщений: 1,019
01.02.2009, 13:34 #2
argv[] - Это массив строк-параметров, которые были переданы экзешнику при его запуске, например, d:\> upx 1.exe -d.
А argc - это колличество этих самых параметров(или элементов массива argv).
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
01.02.2009, 16:35  [ТС] #3
Спасибо. Разобрался.

Если вдруг кому понадобится, то в эти переменные записываются аргументы из командной строки, и соответственно их количество. Например имеем программу 1.exe, которая копирует содержимое одного файла в другой. Для этого нам необходимо передать в программу информацию об этих файлах. И при запуске программы мы пишем имена этих файлов и они передаются как параметры в программу:

Код
C:\1.exe File1 File2
Так вот кол-во этих аргументов (File1, File2) и записывается в argc. В данном случае argc = 2. А в argv записываются собственно именно значения этих параметров, т.е. в нашем случае argv[0] = "File1", argv[1] = "File2".

Вот и все. Поправьте, если что неправильно.
the_t_a
11 / 11 / 1
Регистрация: 27.09.2008
Сообщений: 43
01.02.2009, 18:59 #4
Нет, не так. Программа на С++ всегда получает первый параметр - свой адрес на жестком диске.

Код
C:\1.exe File1 File2
После такого запуска программы
Код
argc=3.
argv[0]=="C:\1.exe"
argv[1]=="File1"
argv[2]=="File2"
Del_Piero_10
Smart is the new Sexy
24 / 24 / 1
Регистрация: 29.12.2008
Сообщений: 109
01.02.2009, 19:39  [ТС] #5
Точно. Упустил. Спасибо.
Lorr
0 / 0 / 0
Регистрация: 21.04.2009
Сообщений: 21
22.10.2009, 10:19 #6
Возник вопрос про вывод в файл.
Элементарный пример вывод в файл строки:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <fstream>
 
using namespace std;
 
 
    
int main()
{
 
   ofstream f1;
   f1.open("1.txt");
   f1 << "privet";
   f1.close();
    
    system("pause");
    return 0;
}
При запуске в wxDev 7 - файл 1.txt создается, но строка не записывается в него.
Если запустить в VC++ 8, то все нормально. В чем может быть причина ?
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
22.10.2009, 16:46 #7
Цитата Сообщение от Del_Piero_10 Посмотреть сообщение
Программа осущетсвляет вывод строк в файл, пока не будет введен символ $. Теперь вопрос. Для чего необходима строка:
елси проавильно понял то
C++
1
2
3
4
5
6
int c=0;
FILE *f=fopen("text.txt", "a");
while((c=getc(f))!=EOF){
if(c="$")fclose(f);//или getc(f)=EOF
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2009, 16:46
Привет! Вот еще темы с ответами:

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур - C++
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран? Само задание: О каждой книге ...

Реализовать вывод массива объектов типа Student на консоль (файловый ввод/вывод) - C++
Как сделать чтобы список студентов выводился на экран в конце? #include&lt;iostream&gt; #include&lt;stdio.h&gt; #include&lt;stdlib.h&gt; ...

Поиск в массиве структур по заданному полю и вывод в алфавитном порядке (файловый ввод/вывод) - C++
Помогите с функцией void runFile() что бы с файла брал и выводил в алфавитном порядке список товаров, хранящихся больше месяца, стоимость...

Вывод суммы в файл (файловый ввод/вывод) - C++
Добрый день! Я пытался написать программу, которая должна вводить данные из файла №1, потом вычислять их сумму и полученное значение...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.10.2009, 16:46
Ответ Создать тему
Опции темы

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