Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Qt и кроссплатформенное программирование С/С++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.05.2015, 03:28   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию си, обрезает ввод, цикл не останавливается при вводе строк

Ребят, привет, есть код, который должен выполнить следующее:

запрос количества строк в файле
ввод строк из потока iostream в строку типа char столько раз, сколько указано в запросе

при вводе первой строки иногда вводится строка один раз, затем цикл прокручивается до конца, видимо код думает что поток заполнен, далее
при записи в файл головной строки обрезаются по пробелам, не знаю почему

задание вообще такое:

есть текстовый файл, состоящий из строк, записать второй текстовый файл из содержимого строк первого, но обрезанных до пробела либо запятой, т.е

первый файл:

1. строка номер один
2. ничего не делает
3. просто, текст

второй файл:

1. строка
2. ничего
3. просто

вот, в принципе, и все

Код:

#include <QCoreApplication>
#include <string.h>
#include <fstream>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);



    int count;

    cout<<"Print size new file: ";
    cin>>count;


    ofstream outFile("tempStream.txt");
    if(!outFile)
        cout<<"impossible to open file";
    else
    {

        char A[50];

        for(int i=0;i<count;i++)
        {
            cout<<"Print stroka nomer (language ENG): "<<i+1<<"\n";
            cin>>A;
            outFile<<A;
            outFile<<"\n";


        }

        outFile.close();
    }


    char arr[50];

    ofstream new_file("new_file.txt");


    ifstream inputFile("tempStream.txt");


    while (!inputFile.eof())
    {
        inputFile>>arr;

        int j=0;
        while ((arr[j]!=' ')||(arr[j]!=','))
        {
            new_file<<arr[j];
            j++;
        }
        new_file<<"\n";
    }



    inputFile.close();

    new_file.close();

    cout<<"Done!";
    return a.exec();


}
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 25.05.2015, 07:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
char arr[50];
Вот не понимаю людей, которые на авианосце в школу плавают...
Елки-моталки у тебя QT!
Неужели не нашлось более подходящего класса для работы с многострочным текстовым файлом? Накой кукарач использовать char массив?

Короч. Читаем тут:
http://doc.crossplatform.ru/qt/4.7.x/qstringlist.html
http://qt-doc.ru/rabota-s-fajlami-klass-qfile.html

Итого: QStringList.append(QFile.readLine() );
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
цикл останавливается при прокрутке страницы vasser200189 Microsoft Office Excel 1 16.05.2012 13:26
Tmemo - перенос строк при вводе. kirsan007 Общие вопросы Delphi 16 07.04.2011 11:26
Не прекращается ввод при вводе пустой строки sunplant Общие вопросы C/C++ 10 10.06.2010 19:33
при изменении разрешения картинки , BitBlt обрезает её.. Человек_Борща Общие вопросы Delphi 2 29.04.2010 22:50
задача в паскаль по файлам; не останавливается цикл loveis_myname Помощь студентам 2 28.12.2009 20:48