С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
wao_138
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
#1

Ошибка при выводе строк из файла - C++

01.04.2014, 01:49. Просмотров 356. Ответов 10
Метки нет (Все метки)

Помогите пожалуйста разобраться в чем ошибка. Весь код писать не буду просто покажу как я вношу данные в файл и считываю.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    int j=i;
 
    ofstream outfile;
    outfile.open("Out.txt");
    for(i=0;i<j;i++)
            outfile <<"\n"<<d[i].OS<<"\t"<<d[i].mult<<"\t"<<d[i].memory<<"\t"<<d[i].vers<<"\t"<<d[i].dev<<"\t"<<d[i].cost<<endl;
    FILE *file;
    file = fopen("Out.txt", "r");
 
    while (fscanf (file, d[i].OS, d[i].mult, d[i].memory, d[i].vers, d[i].dev, d[i].cost) != EOF) {
        cout<<"\n"<<d[i].OS<<"\t"<<d[i].mult<<"\t"<<d[i].memory<<"\t"<<d[i].vers<<"\t"<<d[i].dev<<"\t"<<d[i].cost<<endl;
        i++;
    }
Ошибка при выводе строк из файла.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2014, 01:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при выводе строк из файла (C++):

Ошибка при выводе файла с помощью fprintf - C++
FILE *F=fopen(&quot;1_1.txt&quot;,&quot;w&quot;); std::string st=&quot;0123&quot;; for(int i=0;i&lt;st.length();i++) { fprintf(F,&quot;%c&quot;,st); } fclose(F); ...

Ошибка при чтении строк из файла и записывании их в структуру - C++
Задача заключается в том, что у нас есть структура из имени(string), кол-ва(int) и веса(int), мы заполняем эти структуры сортируем и...

Лишние символы при выводе строк - C++
При создании игрового поля для тетриса (вывод строк, в соответствии с заданным алгоритмом) возникает странная ошибка. Вместо, собственно,...

Ошибка в выводе файла С++ - C++
Добрый день, подскажите пожалуйста в чем загвоздка: Файл: R0_11 0 11 1 .PRINT TRAN I(R0_11) R11_12 11 12 1 .PRINT TRAN I(R11_12) ...

ошибка в выводе инфы из файла - C++
Почему выводит две строчки (одну не существующую) ЗЫ Чет с поиском не врубаюсь...как сделать так что если (по условию) два абонента, то...

Ошибка при выводе - C++
Не могу найти ошибку в цикле. Суть такая: &quot;вывести на дисплей фамилии и номера групп для всех студентов, включенных в массив, имеющих хотя...

10
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2014, 05:14 #2
После записи файл закрывать нужно. Проверку открытия файла для чтения всегда нужно делать. Не надо смешивать в кучу С и С++: если уж ofstream для записи, то ifstream для чтения.
0
wao_138
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
01.04.2014, 16:47  [ТС] #3
Цитата Сообщение от alsav22 Посмотреть сообщение
ifstream для чтения
Можете пример пожалуйста привести? Просто я его нигде не встречал (
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2014, 17:36 #4
Цитата Сообщение от wao_138 Посмотреть сообщение
Просто я его нигде не встречал (
http://www.cplusplus.com/reference/fstream/ifstream/
Похож на istream (cin - объект этого класса), только для работы с файлами.
0
wao_138
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
01.04.2014, 18:09  [ТС] #5
alsav22, получается как-то так?
C++
1
2
3
ifstream f("Out.txt");
    for(i=0;i<j;i++)
            cout <<"\n"<<d[i].OS<<"\t"<<d[i].mult<<"\t"<<d[i].memory<<"\t"<<d[i].vers<<"\t"<<d[i].dev<<"\t"<<d[i].cost<<endl;
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2014, 18:39 #6
Как-то так:
C++
1
2
3
4
5
6
7
ifstream f("Out.txt");
i = 0;
while (f >> d[i].OS >> d[i].mult >> d[i].memory >> d[i].vers >> d[i].dev >> d[i].cost) 
{
        cout<<"\n"<<d[i].OS<<"\t"<<d[i].mult<<"\t"<<d[i].memory<<"\t"<<d[i].vers<<"\t"<<d[i].dev<<"\t"<<d[i].cost<<endl;
        ++i;
}
0
wao_138
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
01.04.2014, 18:50  [ТС] #7
alsav22, ошибку выбивает (
если 1 строка - все нормально но если 2, то 1-ую заменяет левыми символами 2-ую нормально показывает, если 3, то 1-ую нормально, 2-ая - символы, 3-я нормально.
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2014, 18:56 #8
Цитата Сообщение от wao_138 Посмотреть сообщение
ошибку выбивает (
Я вам показал, как использовать fstream. Если что-то не так работает, то разбирайтесь со своим кодом (в частности, как записываете данные в файл (зачем там дополнительные '\n' в начале каждой записи?)).
0
wao_138
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
01.04.2014, 19:12  [ТС] #9
Цитата Сообщение от alsav22 Посмотреть сообщение
то разбирайтесь со своим кодом
В коде все норм, ошибка вылетает после вашего примера использования (
0
alsav22
5428 / 4823 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.04.2014, 19:31 #10
Цитата Сообщение от wao_138 Посмотреть сообщение
В коде все норм, ошибка вылетает после вашего примера использования (
Пример, он и есть - пример. Не хотите разбираться с кодом, так никто и не заставляет (а мне неинтересно с тремя соснами разбираться).
1
wao_138
0 / 0 / 0
Регистрация: 07.01.2014
Сообщений: 63
08.04.2014, 01:01  [ТС] #11
alsav22, прости, у меня действительно была ошибка в коде. Спасибо!
0
08.04.2014, 01:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.04.2014, 01:01
Привет! Вот еще темы с ответами:

Ошибка при выводе строки - C++
Подскажите в чем дело?? #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;string.h&gt; using namespace std; class...

Ошибка при выводе на экран - C++
#include &lt;iostream&gt; using namespace std; int main() { int j =100; while (j &lt;= 110); cout &lt;&lt; endl &lt;&lt; j++; return 0; ...

Ошибка при выводе дерева - C++
#include &lt;iostream&gt; using namespace std; struct node { int inf; node *left; node *right; };

Ошибка при выводе значения - C++
Здравствуйте,решая задание: Вычислить рекурсивно и нерекурсивно произведение четного количества n (n &lt;= 2) сомножителей следующего вида y...


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

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

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