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

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

Войти
Регистрация
Восстановить пароль
 
ExFau$t
263 / 238 / 43
Регистрация: 08.05.2012
Сообщений: 1,286
#1

Ошибка в выводе файла С++ - C++

07.12.2013, 14:45. Просмотров 353. Ответов 11
Метки нет (Все метки)

Добрый день, подскажите пожалуйста в чем загвоздка:
Файл:
R0_11 0 11 1
.PRINT TRAN I(R0_11)
R11_12 11 12 1
.PRINT TRAN I(R11_12)
R1_12 1 12 1
Часть кода
C
1
2
3
4
5
    while ( EOF != (c=getc(f)) )                 
        {
            fgets(s1,40,f);
            puts(s1);
              }
Вывод:
0_11 0 11 1

PRINT TRAN I(R0_11)

R11_12 11 12 1

PRINT TRAN I(R11_12)

1_12 1 12 1
(без первых символов строки).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2013, 14:45     Ошибка в выводе файла С++
Посмотрите здесь:

Ошибка при выводе строк из файла - C++
Помогите пожалуйста разобраться в чем ошибка. Весь код писать не буду просто покажу как я вношу данные в файл и считываю. int j=i; ...

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

Ошибка в выводе - C++
Помогите найти ошибку! Почему то выводит 2 раза фразу введите размер массива, когда второй раз проходит программу #include "stdafx.h" ...

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

Ошибка в выводе экран - C++
Добрый день,такая проблема когда пишу вывод всех сотрудников той же функции где я с ними заполняю массив,то все выводится нормально,но...

Ошибка в выводе данных - C++
здравствуйте. подскажите, пожалуйста, где ошибка ? #include <iostream.h> #include <stdlib.h> #include <conio.h> #include...

Ошибка в выводе ответа - C++
int main(int argc, char *argv) { setlocale(0, "RUS"); int a, b, c, result; printf("Введите a: "); scanf("%d", &a); ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev[G]eN
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
07.12.2013, 15:04     Ошибка в выводе файла С++ #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
#include <string>
 
int main()
{
    std::fstream file("file.txt");
    std::string currentFileString;
    std::cout << "File content: " << std::endl;
    while (std::getline(file, currentFileString))
        std::cout << currentFileString << std::endl;
    file.close();
 
    std::system("pause >> temporaryFile");
    return 0;
}
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 15:09     Ошибка в выводе файла С++ #3
Цитата Сообщение от ExFau$t Посмотреть сообщение
(без первых символов строки).
Вы же здесь их извлекаете:
C++
1
c=getc(f)
ExFau$t
263 / 238 / 43
Регистрация: 08.05.2012
Сообщений: 1,286
07.12.2013, 15:18  [ТС]     Ошибка в выводе файла С++ #4
Цитата Сообщение от alsav22 Посмотреть сообщение
Вы же здесь их извлекаете:
C++
1
c=getc(f)
В таком случае как переместить указатель в потоке на одну позицию назад?
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 15:41     Ошибка в выводе файла С++ #5
Это не нужно. Сделайте проверку конца файла по другому:
C++
1
while (!feof(f))
Добавлено через 11 минут
А ещё лучше, вот так:
C++
1
2
while (fgets(s1,40,f))                 
        puts(s1);
Alex5
1049 / 712 / 105
Регистрация: 12.04.2010
Сообщений: 1,793
07.12.2013, 16:06     Ошибка в выводе файла С++ #6
Цитата Сообщение от ExFau$t Посмотреть сообщение
В таком случае как переместить указатель в потоке на одну позицию назад?
tellg() - получить текущую позицию
seekg() - установить позицию
ExFau$t
263 / 238 / 43
Регистрация: 08.05.2012
Сообщений: 1,286
07.12.2013, 16:50  [ТС]     Ошибка в выводе файла С++ #7
Цитата Сообщение от alsav22 Посмотреть сообщение
Это не нужно. Сделайте проверку конца файла по другому:
C++
1
while (!feof(f))
Добавлено через 11 минут
А ещё лучше, вот так:
C++
1
2
while (fgets(s1,40,f))                 
        puts(s1);
В этом случае вывод будет довольно грубый, с множеством лишних символов, придется задавать дополнительные условия.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 16:56     Ошибка в выводе файла С++ #8
Цитата Сообщение от ExFau$t Посмотреть сообщение
В этом случае вывод будет довольно грубый, с множеством лишних символов, придется задавать дополнительные условия.
Что за "множество лишних символов"? Вам строки прочитать и вывести нужно? И именно, через функции С?
ExFau$t
263 / 238 / 43
Регистрация: 08.05.2012
Сообщений: 1,286
07.12.2013, 17:09  [ТС]     Ошибка в выводе файла С++ #9
Цитата Сообщение от alsav22 Посмотреть сообщение
Что за "множество лишних символов"? Вам строки прочитать и вывести нужно? И именно, через функции С?
Вывожу я для проверки. Со строками мне, разумеется, нужно работать. А множество лишних символов - это символы, которые мне не нужны, но они считываются в строку. А вопрос стоял лишь в нахождении ошибки в примере в шапке, однако если подстроиться к ней нельзя классическими методами, придется грубо "отсекать" строки, выяснять их длину на каждом шаге в файле, а также ввести несколько условных переходов.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 17:15     Ошибка в выводе файла С++ #10
Цитата Сообщение от ExFau$t Посмотреть сообщение
А вопрос стоял лишь в нахождении ошибки в примере в шапке, однако если подстроиться к ней нельзя классическими методами
Пример, по-моему, неудачный. Из него совсем непонятно, что не нужно читать строки. Вопрос стоял так: что нужно изменить в коде, чтобы строка полностью считалась (с первым символом). Теперь оказалось, что задача совсем в другом. В чём - так и не понял.
ExFau$t
263 / 238 / 43
Регистрация: 08.05.2012
Сообщений: 1,286
07.12.2013, 17:37  [ТС]     Ошибка в выводе файла С++ #11
Цитата Сообщение от alsav22 Посмотреть сообщение
Пример, по-моему, неудачный. Из него совсем непонятно, что не нужно читать строки. Вопрос стоял так: что нужно изменить в коде, чтобы строка полностью считалась (с первым символом). Теперь оказалось, что задача совсем в другом. В чём - так и не понял.
Все правильно, что сделать, чтоб считалась строка полностью, но не меняя совершенно содержимого строки( кроме 1 символа). Вывод здесь только для проверки. Нужно модифицировать цикл, чтоб читались 1 символы. Метод, предложенный Вами, как я упомянул ранее, не подходит, так как строка с 1 символом получает до конца своей длины какие-то другие символы, и понадобится еще несколько циклов для устранения проблемы.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.12.2013, 18:06     Ошибка в выводе файла С++
Еще ссылки по теме:

Ошибка в выводе стека - C++
void output (node *&amp; st, char t) { cout&lt;&lt;t; if (st) { node *p=st; while (p) { cout&lt;&lt;p-&gt;info; p=p-&gt;next; ...

Ошибка при выводе на экран - 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++
С указателями работаю не в первый раз, но почему-то возникает ошибка во время работы. int main() { char temp = &quot;hello_world&quot;; ...

Ошибка при выводе символов - C++
Не отображается русскими буквами текст который я ввожу. Помогите, пожалуйста) #include &lt;iostream&gt; #include &lt;string&gt; #include...

Ошибка в выводе сообщения на экран - C++
Как вывести на экран сообщение в виде слова, а не цифры? #include &lt;iostream&gt; using namespace std; int main() { while(true) ...


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

Или воспользуйтесь поиском по форуму:
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
07.12.2013, 18:06     Ошибка в выводе файла С++ #12
Думаете, из этого объяснения можно что-то понять?
Цитата Сообщение от ExFau$t Посмотреть сообщение
чтоб считалась строка полностью, но не меняя совершенно содержимого строки( кроме 1 символа)
Что строку, при чтении из файла, меняет? fgets()? Каким образом?
Цитата Сообщение от ExFau$t Посмотреть сообщение
Нужно модифицировать цикл, чтоб читались 1 символы.
Это как перевести? "... чтобы читались первые символы."? "
Вот это в файле:
R0_11 0 11 1
.PRINT TRAN I(R0_11)
R11_12 11 12 1
.PRINT TRAN I(R11_12)
R1_12 1 12 1
Что должно быть на выходе?
Yandex
Объявления
07.12.2013, 18:06     Ошибка в выводе файла С++
Ответ Создать тему
Опции темы

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