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

Чтение строк из файла - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 494, средняя оценка - 4.97
Krist_ALL
 Аватар для Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
14.05.2010, 18:53     Чтение строк из файла #1
Мне нужно читать строки из фалйа разной длинны

аа
вввввввввввввв

аааав
тоесть может быть вобще пустая строка.
нужно именно c++ не c
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 18:53     Чтение строк из файла
Посмотрите здесь:

Чтение файла в массив строк C++
чтение строк из файла C++
C++ Чтение строк из бинарного файла.
чтение из файла (массив строк) C++
C++ Сравнение строк в структуре, чтение из файла
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Adler
 Аватар для Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
15.05.2010, 13:49     Чтение строк из файла #2
попрубй так:
C++
1
fscanf(f,"%[^\n]",s);
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.05.2010, 13:53     Чтение строк из файла #3
Adler, это СИ.
Krist_ALL, используй функцию std::getline. Пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <fstream>
#include <string>
 
int main() {
  std::istream file("file_name.ext");
 
  while(file) {
    std::string str;
    std::getline(file, str);
    // Обработка строки str
  }
 
  return 0;
}
Krist_ALL
 Аватар для Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
15.05.2010, 17:14  [ТС]     Чтение строк из файла #4
CyBOSSeR, а если у меня строки в стиле С (char)?
знаю что стринг удобнее но всеже)

стринг читает пока не будет конца - тоесть всю строку гетланйн
а вот cin.getline() надо указывать длинну..
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.05.2010, 17:21     Чтение строк из файла #5
Krist_ALL, тогда так:
C++
1
2
3
4
5
6
7
8
while(file) {
  const int max_lenght = 1024;
  char str[max_lenght];
 
  file.getline(str, max_lenght);
 
  // Обработка строки str
}
Krist_ALL
 Аватар для Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
15.05.2010, 18:01  [ТС]     Чтение строк из файла #6
а я вот такой код нашел ..
C++
1
while (fin.getline(buf, l_buf)){
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.05.2010, 18:04     Чтение строк из файла #7
Krist_ALL, те же яйца, только в профиль. Попробуй.
alex_x_x
15.05.2010, 18:11
  #8

Не по теме:

Цитата Сообщение от CyBOSSeR Посмотреть сообщение
Adler, это СИ.
это вообще регулярные выражения

-ARiF-
0 / 0 / 0
Регистрация: 09.04.2013
Сообщений: 3
09.04.2013, 23:55     Чтение строк из файла #9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
    string a;
    ifstream creat;
    creat.open("text.txt");
    while (true)
    {
        creat >> a;
        if (!creat.eof())
            cout << a << " ";
        else
            break;
    }
 
    return 0;
}
migtymasha
1 / 1 / 0
Регистрация: 13.05.2013
Сообщений: 11
14.05.2013, 00:00     Чтение строк из файла #10
а можете подсказать, в какой папке должен лежать файл, из котрого нужно прочитать данные?

вот мой код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <fstream>
#include <string>
#include<iostream>
using namespace std;
 
int main()
{
   ifstream file("text.DAT"); 
   while(file)
   {
    string str;
    getline(file, str);
    cout<<str;
   };
   system("pause"); 
   return 0;
};
в итоге на консоль ничего не выводится, хотя в файле 3 строки.
Dayslar
0 / 0 / 0
Регистрация: 03.08.2013
Сообщений: 2
03.08.2013, 15:41     Чтение строк из файла #11
migtymasha, в той же папке, что и программа!
попробуй вот этот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <fstream>
#include <string>
#include<iostream>
using namespace std;
 
int main()
{ string str;
   ifstream file("text.DAT",ios::in); 
   while(!file.eof())
   {
    getline(file, str);
    cout<<str<<endl;
   };
   file.close()
   system("pause"); 
   return 0;}
Valentina
66 / 66 / 3
Регистрация: 13.05.2012
Сообщений: 130
03.08.2013, 15:50     Чтение строк из файла #12
если нужно просто вывести содержимое файла, можно сделать так
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <fstream>
#include <string>
#include<iostream>
using namespace std;
 
int main()
{ 
   ifstream file("text.DAT"); 
   cout<<file.rdbuf();
cout<<endl;
   system("pause"); 
   return 0;}
moskalukigor
1 / 1 / 0
Регистрация: 08.11.2013
Сообщений: 5
08.11.2013, 21:08     Чтение строк из файла #13
Можно осуществить вывод текста через string.
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
#include <iostream>
#include <cstdio>                                //Эта библиотека обязательна (она может быть подключена автоматически но на всякий случай лучше её подключить сразу).
using namespace std;
void main()
{
     setlocale(LC_ALL,".1251");                //Делаем допустимым вывод кириллицы в консоль.
     FILE *in = fopen(".\\main\\in.txt","r"); //файл находится в папке main (папка main находится в папке с проектом)
                                                        //  параметр "r", то есть reed - позволит нам только считать информацию.
     if(in==NULL)                                   //если in(файл) равен NULL,значит он не может открыться.Либо путь не тот.
     {
         cout<<"Ошибка в открытии файла in.txt"<<endl;
     }
     else
     {
         char str[64];       //создаём строку(string) размером 64.
         fgets(str,64,in);   //записываем в str первую строку.
         while(!feof(in))    //пока не конец файла in ,мы исполняем цикл.
         {
         cout<<str;        //выводим на экран первую строку.
         fgets(str,64,in); //записываем вторую.
         }
         fcloseall();         //закрываем все открытые (в нашем случае один) файлы.
     }
}
Думаю вам поможет.
Миниатюры
Чтение строк из файла   Чтение строк из файла  
maestro4250
10 / 10 / 1
Регистрация: 01.04.2015
Сообщений: 120
21.05.2015, 20:47     Чтение строк из файла #14
а если мне нужно 1 строку считать обработать потом прыгнуть на вторую ?
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
21.05.2015, 21:26     Чтение строк из файла #15
Цитата Сообщение от maestro4250 Посмотреть сообщение
а если мне нужно 1 строку считать обработать потом прыгнуть на вторую ?
maestro4250, ты что по темам прыгаешь? Я же тебе написал, что у тебя и так прыгало.
Hellgate
 Аватар для Hellgate
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
23.07.2015, 16:06     Чтение строк из файла #16
Товарищи, подскажите, если у меня в файле количество строк заранее не известно, то как написать цикл, в котором у меня поочередно будут считываться эти строки, а когда они закончатся, то произойдет выход из цикла?
FRINGE
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
23.07.2015, 17:01     Чтение строк из файла #17
Цитата Сообщение от Hellgate Посмотреть сообщение
Товарищи, подскажите, если у меня в файле количество строк заранее не известно, то как написать цикл, в котором у меня поочередно будут считываться эти строки, а когда они закончатся, то произойдет выход из цикла?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <fstream>
#include <string>
#include<iostream>
using namespace std;
 
int main()
{ string str;
   ifstream file("text.DAT",ios::in); 
   while(!file.eof())
   {
    getline(file, str);
    cout<<str<<endl;
   };
   file.close()
   system("pause"); 
   return 0;}
вот ведь выше уже написали код.
Hellgate
 Аватар для Hellgate
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
28.07.2015, 16:43     Чтение строк из файла #18
мне при этом нужно выполнять манипуляции со строками, а вообще идеально было бы, если бы подсказали как обратиться к примеру напрямую к N-ной строке файла
lss
919 / 849 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
28.07.2015, 16:54     Чтение строк из файла #19
Цитата Сообщение от FRINGE Посмотреть сообщение
вот
Так последнюю строку два раза выведет. Лучше так:
C++
1
2
3
4
while(getline(file, str))
{
    cout<<str<<endl;
}
Добавлено через 3 минуты
Цитата Сообщение от Hellgate Посмотреть сообщение
как обратиться к примеру напрямую к N-ной строке файла
Пропусти нужное количество строк с помощью file.ignore(200, '\n') (200 - предполагаемое максимальное количество символов в строке).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.07.2015, 17:27     Чтение строк из файла
Еще ссылки по теме:

C++ Чтение из файла в массив строк
Чтение строк из файла C++
Чтение строк из файла C++

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

Или воспользуйтесь поиском по форуму:
Hellgate
 Аватар для Hellgate
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
28.07.2015, 17:27     Чтение строк из файла #20
Пропусти нужное количество строк с помощью file.ignore(200, '\n')
какую библиотеку нужно использовать для функции ignore ?
Yandex
Объявления
28.07.2015, 17:27     Чтение строк из файла
Ответ Создать тему
Опции темы

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