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

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

Войти
Регистрация
Восстановить пароль
 
Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
#1

Считывание Ентера из файла - C++

21.10.2012, 00:33. Просмотров 488. Ответов 11
Метки нет (Все метки)

Доброй ночи, друзья.
Пишу код, считываю из файла слова.. вот, файл имеет допустим такой набор:

10 22 33 41
522 633 74

оно считало 10,22,33,41, а 522 633 77 не хочет, понимаю что там '\n' как бы стоит, но.. уже пробовал много вариантов считывания его, не хочет и всё..

Код:

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
    while(buf != EOF)
        {
            buf = getc(fin);
            //cout<<buf<<endl;
            if(buf == EOF)
            {
                break;
            };
 
            if(buf ==' ' || buf == '\n' )
            {
                wBuf[i] = '\0';
                cout<<"wBuf:"<<wBuf<<endl;
                wBuf[0] = '\0' ;
                i=0;
 
                while(buf!=' ')
                    buf = getc(fin);
            };
 
            wBuf[i] = buf;
            i++;
            
 
        };
wBuf - массив чаров
buf - чаровая переменная

буду благодарен за помощь! ну или скажите что глянуть. ПРобовал добавлять там где " " условие "\n" но, не то( считывание идет посимвольно, перегоняется в массив чаров, чтоб получалось целое "слово" на выходе, потом оно будет отправляться дальше по коду..

суть как бы в чем, считать все слова из файла, без пробелов)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2012, 00:33
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Считывание Ентера из файла (C++):

Заменить считывание с клавиатуры на считывание из файла - C++
Помогите пожалуйста, ни разу не работал со считыванием из файла поэтому не понимаю как и что делать. Почитал в интернете, попробовал, не...

Считывание файла в массив и запись нового файла - C++
Консоль VS C++. Текстовый файл открывается как бинарный, и считывается по 100 байт в массив - и сразу они переписываются в другой файл. В...

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

Считывание из файла - C++
Всем привет! Есть вот такая проблема: при считывании данных из файла в объект ниоткуда берутся лишние данные. В чем может быть проблема?...

Считывание с файла - C++
Добрый вечер! Считываю с файла посимвольно строку (навсякий случай вот так x = infile.get();) есть ли какая нибудь функция для...

Считывание файла - C++
ВОбщем при считывании файла стандартными способами FILE *file = fopen(filename, &quot;r&quot;); if(file == NULL) { return; } ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
21.10.2012, 00:46 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdio>
void main()
{
    FILE* f = fopen("filename.txt","r");
    while(!feof(f))
    {
        int v;
        fscanf(f,"%d",&v);
        printf("$d\t",v);
    }
    fclose(f);
}
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdio>
#include <conio.h>
void main()
{
    FILE* f = fopen("filename.txt","r");
    while(!feof(f))
    {
        char v[1024];
        fgets(v,1024,f);
        puts(v);
        puts("\n");
    }
    fclose(f);
}
0
Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
21.10.2012, 00:48  [ТС] #3
Цитата Сообщение от CEBEP Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <cstdio>
void main()
{
    FILE* f = fopen("filename.txt","r");
    while(!feof(f))
    {
        int v;
        fscanf(f,"%d",&v);
        printf("$d\t",v);
    }
    fclose(f);
}
Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <cstdio>
#include <conio.h>
void main()
{
    FILE* f = fopen("filename.txt","r");
    while(!feof(f))
    {
        char v[1024];
        fgets(v,1024,f);
        puts(v);
        puts("\n");
    }
    fclose(f);
}
ну это для цифр пройдет, а мне надо символы) слова чтоб считывать) хотя, а если по %s, оно до пробела вроде должно, да?
0
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
21.10.2012, 00:49 #4
второй вариант для этого
0
Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
21.10.2012, 00:53  [ТС] #5
а стоп, поздно процитировал. сейчас попробую второй варианТ)

Добавлено через 2 минуты
нет, тоже не то) это будет блоком по 1024 символа читать, если я правильно понял, суть такая:

один два три
пять двадцать

вот у меня прога читает "один" "два" "три", а на "пять" и "двадцать" не переходит)
мне надо чтоб по слову считывалось... слово считалось и передалось в другой массив..
0
CEBEP
106 / 106 / 9
Регистрация: 21.03.2010
Сообщений: 440
21.10.2012, 00:54 #6
Цитата Сообщение от Eugen-S Посмотреть сообщение
это будет блоком по 1024 символа читать
вы точно попробовали?
0
Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
21.10.2012, 10:15  [ТС] #7
не, это была догадка, пробую...

Добавлено через 9 часов 12 минут
и всё же был прав, оно считывает строку целую)
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.10.2012, 10:40 #8
В файле:
10 22 33 41
522 633 74
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <fstream>
using namespace std;
 
int main()
{
   fstream f("2.txt");
   
   char buf[255];
   while (!f.eof())
   {
      f >> buf;
      cout << buf << endl;
   }
  
  cout << endl;
  system("pause");
  return 0;
}
0
Миниатюры
Считывание Ентера из файла  
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.10.2012, 10:59 #9
Или так:
C++
1
2
3
4
5
6
7
8
9
10
...
FILE *f = fopen("2.txt", "r");
   
   char buf[255];
   while (!feof(f))
   {
        fscanf(f, "%s", buf);
        cout << buf << endl;
   }
...
1
Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
21.10.2012, 11:21  [ТС] #10
вроде как последний вариант работает, сейчас больше тестов проведу!) Спасибо!)
0
alsav22
5419 / 4815 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.10.2012, 11:32 #11
Цитата Сообщение от Eugen-S Посмотреть сообщение
вроде как последний вариант работает
А предпоследний?

Добавлено через 2 минуты
scanf() ( и fscanf()) читает до пробела('\n' для неё тоже пробел). Первые пробельные символы пропускаются. То есть, читаться будут именно слова. Тоже самое относиться и к cin >>.
0
Eugen-S
8 / 8 / 0
Регистрация: 06.11.2011
Сообщений: 122
21.10.2012, 13:03  [ТС] #12
там потоки, я с потоками еще не работал) но вообще по идее тоже должен работать)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2012, 13:03
Привет! Вот еще темы с ответами:

Считывание из файла. - C++
Считывание из файла. Подскажите пожалуйста!!!! Очень надо!!!!!! Как из файла считать только определенную матрицу (фрагмент) и...

Считывание из файла - C++
В общем-то задача таков- считать из файла ВСЁ, ЧТО ТАМ ЕСТЬ, далее это зашифровать и сохранить. Для шифрования выбрал base64, проблем...

Считывание из файла - C++
Помогите пожалуйста! Почему не работает? Нужно считать из файла в двумерный массив матрицу состоящую из 0 и 1. char **table; ...

считывание из файла - C++
привет всем. полазил по форуму но так и не понял как считывать с файла для моей задачи.. как считать из файла чтоб можно было потом...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.10.2012, 13:03
Ответ Создать тему
Опции темы

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