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

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

02.02.2015, 15:21. Просмотров 411. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Чтение данных из файла С++ (C++):

Преобразование текстового файла в двоичный и чтение исходных данных из двоичного файла.
#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
Модератор
Эксперт С++
6950 / 6512 / 4133
Регистрация: 18.12.2011
Сообщений: 17,175
Завершенные тесты: 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
Сообщений: 137
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