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

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

Войти
Регистрация
Восстановить пароль
 
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
#1

Файловый ввод-вывод - C++

16.07.2013, 16:13. Просмотров 581. Ответов 14
Метки нет (Все метки)

Прохожу тему файлового ввода-вывода, написал такой код:

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
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main()
{
 ifstream infile("in_file");
 ofstream outfile("out_file");
 if ( ! infile ) {
 cerr << "ГЋГёГЁГЎГЄГ* îòêðûòèÿ âõîäГ*îãî ГґГ*éëГ*.\n"
 return -1;
}
 if ( ! outfile ) {
 cerr << "ГЋГёГЁГЎГЄГ* îòêðûòèÿ âûõîäГ*îãî ГґГ*éëГ*.\n"
 return -2;
}
 
 string word;
 while ( infile >> word )
 outfile << word << ' ';
 system ("pause");
 return 0;
}
Выбивает ошибку:

C++
1
2
3
4
 D:\DEV\Г—ГЁГІГ*ГҐГІ ГЁГ§ ГґГ*éëГ* ГЁ ââîäèò Гў ГґГ*éë\main.cpp In function `int main()': 
14 D:\DEV\Г—ГЁГІГ*ГҐГІ ГЁГ§ ГґГ*éëГ* ГЁ ââîäèò Гў ГґГ*éë\main.cpp expected `;' before "return" 
18 D:\DEV\Г—ГЁГІГ*ГҐГІ ГЁГ§ ГґГ*éëГ* ГЁ ââîäèò Гў ГґГ*éë\main.cpp expected `;' before "return" 
 D:\DEV\Г—ГЁГІГ*ГҐГІ ГЁГ§ ГґГ*éëГ* ГЁ ââîäèò Гў ГґГ*éë\Makefile.win [Build Error]  [main.o] Error 1
Как я понял компилятор не хочет воспринимать return -1, return -2? Или как?
P.S. Фалы in_file, out_file я не создавал, думаю что они сами создадутся, или это не так?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2013, 16:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Файловый ввод-вывод (C++):

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

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

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

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

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13226 / 7498 / 845
Регистрация: 27.09.2012
Сообщений: 18,416
Записей в блоге: 3
Завершенные тесты: 1
16.07.2013, 16:15 #2
C++
1
cerr << "Ошибка открытия входного файла.\n"
Где точка с запятой?
1
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
16.07.2013, 16:34  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
cerr << "Ошибка открытия входного файла.\n"
Где точка с запятой?
Точно, я как-то не заметил Спасибо!

Добавлено через 18 минут
Появился ещё один вопрос
Допустим, я захочу создать игру.Мне нужно чтоб человек ввёл свой логин (очки и т.д. это уже потом сам разберусь), и его логин записался в файл.И чтоб при следующем входе в игру человек мог ввести свой логин снова, и продолжить игру там, где закончил) Если короче - человек вводит логин - логин записывается в файл - при следующем входе человек вводит тот же логин и продолжает свои действия с того же момента
Можете подсказать как такое сделать?
Я уже сделал примерный набросок, но не уверен...)Просто ошибки есть при компиляции
Вот код:

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 <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() {
cout << "Enter you login: " << endl;
char login[50];
cin >> login;
{
 ifstream infile("in_file.txt");
 ofstream outfile("out_file.txt");
 if ( ! infile ) {
 cerr << "Error opening the input file" << endl;
 return -1;
}
 if ( ! outfile ) {
 cerr << "Error opening output file" << endl;
 return -2;
}
}
 while ( infile.txt >> login )
 outfile.txt << login << ' ';
 cout << "Enter a file is successful!" << endl;
 system ("pause");
 return 0;
}
Вот ошибки:

C++
1
2
3
4
24 D:\DEV\Г’ГҐГ±ГІ ГІГЁГЇГ* ГЁГЈГ°Г* ГЄГ*ðî÷\main.cpp `infile' undeclared (first use this function) 
  (Each undeclared identifier is reported only once for each function it appears in.) 
25 D:\DEV\Г’ГҐГ±ГІ ГІГЁГЇГ* ГЁГЈГ°Г* ГЄГ*ðî÷\main.cpp `outfile' undeclared (first use this function) 
 D:\DEV\Г’ГҐГ±ГІ ГІГЁГЇГ* ГЁГЈГ°Г* ГЄГ*ðî÷\Makefile.win [Build Error]  [main.o] Error 1
Пробовал убирать в
C++
1
2
 while ( infile.txt >> login )
 outfile.txt << login << ' ';
названии файлов .txt но то же самое выходит)
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2013, 16:58 #4
C++
1
2
while ( infile >> login )
 outfile<< login << ' ';
0
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
16.07.2013, 17:16  [ТС] #5
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
while ( infile >> login )
 outfile<< login << ' ';
Не работает, та же ошибка)

Добавлено через 5 минут
А если упростить программу до такого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() {
char login[50];
 cout << "Enter you login: " << endl;
 cin >> login;
 ifstream infile("login.txt");
 ofstream outfile("save.txt");
 while ( login >> login )
 save << login << ' ';
 system ("pause");
 return 0;
}
?

Можете сказать что тут не так? А то никак не могу понять в чём ошибка
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2013, 17:17 #6
12, 18 строчки(3 пост), что за скобки?
0
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
16.07.2013, 17:20  [ТС] #7
Цитата Сообщение от alsav22 Посмотреть сообщение
12, 18 строчки(3 пост), что за скобки?
Ну я их уже убрал, давайте так, вот код:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() {
 string login;
 cout << "Enter you login: " << endl;
 cin >> login;
 ifstream infile("login.txt");
 ofstream outfile("save.txt");
 while ( login >> login )
 save << login << ' ';
 system ("pause");
 return 0;
}
Тут нет ничего лишнего Поможете исправить?

Ошибки:
C++
1
2
14 D:\DEV\Г’ГҐГ±ГІ ГІГЁГЇГ* ГЁГЈГ°Г* ГЄГ*ðî÷\main.cpp no match for 'operator>>' in 'login >> login' 
15 D:\DEV\Г’ГҐГ±ГІ ГІГЁГЇГ* ГЁГЈГ°Г* ГЄГ*ðî÷\main.cpp `save' undeclared (first use this function)
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2013, 17:20 #8
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
30
31
32
33
34
35
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() 
{
    cout << "Enter you login: " << endl;
    char login[50];
    cin >> login;
 
    ifstream infile("in_file.txt");
    ofstream outfile("out_file.txt");
    if ( ! infile ) 
    {
        cerr << "Error opening the input file" << endl;
        return -1;
    }
 
    if ( ! outfile ) 
    {
        cerr << "Error opening output file" << endl;
        return -2;
    }
    
    while ( infile >> login )
        outfile << login << ' ';
    
    cout << "Enter a file is successful!" << endl;
     
    system ("pause");
    return 0;
}
0
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
16.07.2013, 17:24  [ТС] #9
Хмм...Я пробовал такой же код, не сработало...Возможно я что-то не усмотрел)Ну это работает, спасибо огромное!

Добавлено через 1 минуту
Не понимаю, так то всё вроде бы работает, но в файлы ничего не записывается)
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2013, 17:26 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() 
{
    char login[50];
    cout << "Enter you login: " << endl;
    cin >> login;
    
    ifstream infile("login.txt");
    ofstream outfile("save.txt");
    
    while ( infile >> login )
        outfile << login << ' ';
    
    system ("pause");
    return 0;
}
Добавлено через 1 минуту
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Не понимаю, так то всё вроде бы работает, но в файлы ничего не записывается)
Файл, с которого читаете существует? Что хотите сделать? Что должно записаться?
0
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
16.07.2013, 17:28  [ТС] #11
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() 
{
    char login[50];
    cout << "Enter you login: " << endl;
    cin >> login;
    
    ifstream infile("login.txt");
    ofstream outfile("save.txt");
    
    while ( infile >> login )
        outfile << login << ' ';
    
    system ("pause");
    return 0;
}
Добавлено через 1 минуту

Файл, с которого читаете существует? Что хотите сделать?
Смотрите.Я только что скомпилировал ваш код (10 пост), но результат тот же.
Я создал в папке файл login.txt сам, но когда я в программе ввёл логин то ничего не произошло, просто создался файл save.При этом в файле логин тоже ничего не поменялось
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2013, 17:33 #12
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Я создал в папке файл login.txt сам,
В нём что?

Добавлено через 27 секунд
Цитата Сообщение от Даниил1991 Посмотреть сообщение
но когда я в программе ввёл логин то ничего не произошло
А что должно произойти? Повторяю вопрос: что хотите сделать?
0
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
16.07.2013, 17:34  [ТС] #13
Ну вообще запланировано так:
Человек вводит логин (в игре допустим это пригодится)
Его логин записывается в файл save
И в следующий раз когда он зайдёт в игру и авторизируется со своим логином то игра продолжится с тем же счётом и т.д.
P.S. В файле login пусто, я ничего не добавлял
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
16.07.2013, 17:37 #14
Цитата Сообщение от Даниил1991 Посмотреть сообщение
Человек вводит логин (в игре допустим это пригодится)
Его логин записывается в файл save
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() 
{
    char login[50];
    cout << "Enter you login: " << endl;
    cin >> login;
    
    //ifstream infile("login.txt");
    ofstream outfile("save.txt");
    
    //while ( infile >> login )
        outfile << login << ' ';
    
    system ("pause");
    return 0;
}
1
Даниил
67 / 40 / 7
Регистрация: 14.05.2013
Сообщений: 383
16.07.2013, 17:40  [ТС] #15
Цитата Сообщение от alsav22 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <cstdlib>
#include <fstream>
#include <string>
 
using namespace std;
 
int main() 
{
    char login[50];
    cout << "Enter you login: " << endl;
    cin >> login;
    
    //ifstream infile("login.txt");
    ofstream outfile("save.txt");
    
    //while ( infile >> login )
        outfile << login << ' ';
    
    system ("pause");
    return 0;
}
Вот это правильно, так как я и хотел)
Почему это я захотел усложнить всё, ведь действительно, можно было не записывать из файла в файл Спасибо!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2013, 17:40
Привет! Вот еще темы с ответами:

Файловый ввод/вывод - C++
Ребят, помогите решить один вопросик, пожалуйста. Вот есть потоковые объекты классов ifstream и ofstream, которые работают с файлами....

Файловый ввод/вывод в С++ - C++
Здравствуйте не подскажите как организовать файловый ввод вывод в С++ Скажем есть файл 1 из него надо прочитать 2 переменные и записать...

Файловый ввод\вывод - C++
У меня есть файл: 111111100000101111111 100000100101001000001 101110100101101011101 101110100111001011101 101110100110101011101 ...

Файловый ввод/вывод в С++ - C++
1. Дан файл. В нем записана матрица 10 на 10, состоящая из вещественных чисел. Считать с файла эту матрицу. Транспонировать и вывести в...


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

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

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