Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
36 / 36 / 22
Регистрация: 18.01.2014
Сообщений: 149
1

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

02.02.2015, 15:21. Просмотров 608. Ответов 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.02.2015, 15:21
Ответы с готовыми решениями:

Чтение файла, чтение названия папки где находится файл, запись данных на PHP
Допустим у нас есть структура с папками типа Large -&gt; Vehicles -&gt; Firetruck_0 В этой папке лежит...

Чтение заголовка PCX файла и чтение растровых данных PCX файла
Привет форумчане! Столкнулся с такой проблемой. Нужно считать заголовок PCX файла и растровые...

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

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

3
-18 / 9 / 5
Регистрация: 24.12.2014
Сообщений: 88
02.02.2015, 15:26 2
Все дело в потоке, его нужно инициализировать!
1
Модератор
Эксперт С++
10150 / 8499 / 5165
Регистрация: 18.12.2011
Сообщений: 22,738
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
36 / 36 / 22
Регистрация: 18.01.2014
Сообщений: 149
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2015, 17:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Создание текстового файла и чтение данных из файла
Здравствуйте. Дана задача : Создать файл, содержащий сведения о сдаче студентами первого курса...

Чтение текстового файла. Парсинг его данных. Создание исключений для данных. Запись свойств объектов в файл
Проблема такая. Есть файл data.txt. В нем например какие-то данные. Landon Donovan, 150, A...

Чтение данных из файла
Здравствуйте, в программе нужно прочитать данные из файла и записать результат в ассоциативный...

Чтение данных из файла
Вообщем проблема такая. Программа должна читать данные из файла (Допустим это txt). В коде что...


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

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

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