Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
19dmitry
33 / 33 / 22
Регистрация: 18.01.2014
Сообщений: 138
#1

Чтение данных из файла С++

02.02.2015, 15:21. Просмотров 418. Ответов 3
Метки нет (Все метки)

Здравствуйте.
Дан простой пример потокового ввода/вывода дисковых файлов из Лафоре ООП С++.
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
// форматированный вывод в файл
// formato.cpp
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "RUSSIAN");
    char ch='x';
    int j=77;
    double d=6.02;
    string str1="Kafka";
    string str2="Proust";
 
    ofstream outfile("C:\Users\DMITRY\Documents\Visual Studio 2008\Projects\formato\formato\fdata.txt");
 
    outfile << ch
        << j
        << ' '
        << d
        << str1
        << ' '
        << str2;
    cout << "Файл записан\n";
 
    return 0;
}
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
// форматированное чтение из файла
// formati.cpp
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
    char ch;
    int j;
    double d;
    string str1;
    string str2;
 
    ifstream infile("C:\Users\DMITRY\Documents\Visual Studio 2008\Projects\formato\formato\fdata.txt");
 
    infile >> ch >> j >> d >> str1 >> str2;
 
    cout << ch << endl
        << j << endl
        << d << endl
        << str1 << endl
        << str2 << endl;
    return 0;
}
Первая программа работает правильно, создаёт файл, следующего содержания:
x 77 6.02 Kafka Proust

Результат работы второй программы:
Чтение данных из файла С++

Как мы видим, вторая программа не выводит данные содержимое файла fdata.txt
В коде ошибок нет. С чем может быть связана данная проблема, как её решить?

Когда обе программы реализовываем в одной, через функции, объявляя переменные, как глобальные, тогда всё получается.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
 
char ch;
int j;
double d;
string str1;
string str2;
 
void in();
void out();
 
int main()
{
    setlocale (LC_ALL, "RUSSIAN");
 
    in();
    out();
 
    return 0;
}
 
void in()
{
    ch='x';
    j=77;
    d=6.02;
    str1="Kafka";
    str2="Proust";
 
    ofstream outfile("C:\Users\DMITRY\Documents\Visual Studio 2008\Projects\formato\formato\fdata.txt");
 
    outfile << ch
        << j
        << ' '
        << d
        << str1
        << ' '
        << str2;
    cout << "Файл записан\n";
}
 
void out()
{
    ifstream infile("C:\Users\DMITRY\Documents\Visual Studio 2008\Projects\formato\formato\fdata.txt");
 
    infile >> ch >> j >> d >> str1 >> str2;
 
    cout << ch << endl
        << j << endl
        << d << endl
        << str1 << endl
        << str2 << endl;
}
Результат такой, как и должен быть:
Чтение данных из файла С++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.02.2015, 15:21
Ответы с готовыми решениями:

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#include&lt;iostream&gt; #include&lt;fstream&gt; #include&lt;locale.h&gt; #include&lt;iomanip&gt;...

Чтение из файла определённого места и сортировка данных исходя из этих данных
Есть некий текстовый документ, содержащий информацию о посещении сайта в...

Чтение данных из файла
здравствуйте. суть проблемы: у меня есть некий файл, в котором записаны в 2...

Чтение данных из файла
Вот задание прочитать данные из файла и вывести их также как они в файле...

Чтение данных из файла
У меня такая проблема, мне дан бинарный файл, где записаны числа типа float....

3
Implosion_IT
-18 / 9 / 5
Регистрация: 24.12.2014
Сообщений: 88
02.02.2015, 15:26 #2
Все дело в потоке, его нужно инициализировать!
1
zss
Модератор
Эксперт С++
7057 / 6603 / 4178
Регистрация: 18.12.2011
Сообщений: 17,400
Завершенные тесты: 1
02.02.2015, 16:21 #3
Цитата Сообщение от 19dmitry Посмотреть сообщение
"C:\Users\DMITRY\Documents\Visual Studio 2008\Projects\formato\formato\fdata.txt")
Обратные слаши надо экранировать
"C:\\Users\\DMITRY\\Documents\\Visual Studio 2008\\Projects\\formato\\formato\\fdata.txt"
1
19dmitry
33 / 33 / 22
Регистрация: 18.01.2014
Сообщений: 138
02.02.2015, 17:46  [ТС] #4
Спасибо за совет, на счет слешей. Но, увы и это не помогло.
А по поводу инициализации, если я правильно разобрался, то должно выглядеть таким образом:
C++
1
2
//formato.cpp
    ofstream outfile("C:\\Users\\DMITRY\\Documents\\Visual Studio 2008\\Projects\\formato\\formato\\fdata.txt", ios::out | ios::app);
C++
1
2
//formati.cpp
    ifstream infile("C:\\Users\\DMITRY\\Documents\\Visual Studio 2008\\Projects\\formato\\formato\\fdata.txt", ios::in|ios::ate);
Добавлено через 1 час 5 минут
Всем спасибо за помощь. Разобрался. Всё работает.
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
// форматированный вывод в файл
// formato.cpp
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "RUSSIAN");
    char ch='x';
    int j=77;
    double d=6.02;
    string str1="Kafka";
    string str2="Proust";
 
    ofstream outfile("C:\\Users\\DMITRY\\Documents\\Visual Studio 2008\\Projects\\formato\\formato\\fdata.txt", ios::out);
 
    outfile << ch
        << j
        << ' '
        << d
        << str1
        << ' '
        << str2;
    cout << "Файл записан\n";
 
    return 0;
}
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
#include<fstream>
#include<iostream>
#include<string>
using namespace std;
 
int main()
{
    setlocale (LC_ALL, "RUSSIAN");
    char ch;
    int j;
    double d;
    string str1;
    string str2;
 
    ifstream infile("C:\\Users\\DMITRY\\Documents\\Visual Studio 2008\\Projects\\formato\\formato\\fdata.txt", ios::in);
 
    infile >> ch >> j >> d >> str1 >> str2;
 
    cout << ch << endl
        << j << endl
        << d << endl
        << str1 << endl
        << str2 << endl;
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.02.2015, 17:46

Чтение данных из файла
Очень нужна помощь: никак не получается написать функцию чтения из файла на...

Чтение данных из файла
Вот программа запись и чтение из файла. Сначала записываем данные о...

Чтение данных из файла
Доброго времени, долго искал ответ, решил все таки спросить. Есть файл в...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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