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

Работа с текстовыми файлами - C++

Восстановить пароль Регистрация
 
Voltrex
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 22
02.03.2011, 17:15     Работа с текстовыми файлами #1
Задача: написать программу, которая считывает слова из текстового файла. Слова разделены символом ";". Нужно записать эти слова в новый файл, причем каждое новое слово - с новой строки.
Вот код:
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
#include <iostream>
#include <stdio.h>
 
using namespace std;
 
int main()
{
    char Symbol;
    FILE* fin = fopen("input.txt","r");
    FILE* fout = fopen("output.txt", "w");
    if (fin != NULL)
    {
        while (Symbol != EOF)
        {
            Symbol=getc(fin);
            if (Symbol != ';')
            {
                putc(Symbol,fout);
            }
            else
            {
                putc('\n',fout);
            }
        }
    }
    else
    {
        printf("Input file does not exists!");
    }
    fclose(fin);
    fclose(fout);
    return 0;
}
Проблема:
Исходный текст: 123; rsa; pop
Выдает на выходе:
123
rsa
popя

То есть делает лишние пробелы и букву "я" в конце. Почему?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2011, 17:15     Работа с текстовыми файлами
Посмотрите здесь:

Работа с текстовыми файлами C++
Работа с текстовыми файлами C++
Работа с текстовыми файлами C++
Работа с текстовыми файлами в С++ C++
работа с текстовыми файлами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
orienteer
7 / 6 / 0
Регистрация: 23.06.2009
Сообщений: 41
02.03.2011, 17:49     Работа с текстовыми файлами #2
так у он считывает конец файла, выводит в выходной файл, а только потом идет проверка условия в цикле, я - это как бы символ конца файла
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.03.2011, 05:23     Работа с текстовыми файлами #3
C++
1
char Symbol;
C++
1
int Symbol;
C++
1
    while ((Symbol = getc(fin)) != EOF) {
Voltrex
0 / 0 / 0
Регистрация: 08.01.2011
Сообщений: 22
03.03.2011, 10:27  [ТС]     Работа с текстовыми файлами #4
Всем спасибо, но я уже разобрался.
C++
1
if (Symbol == EOF) exit(0);
Yandex
Объявления
03.03.2011, 10:27     Работа с текстовыми файлами
Ответ Создать тему
Опции темы

Текущее время: 21:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru