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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 494, средняя оценка - 4.97
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
#1

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

14.05.2010, 18:53. Просмотров 86037. Ответов 24
Метки нет (Все метки)

Мне нужно читать строки из фалйа разной длинны

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

аааав
тоесть может быть вобще пустая строка.
нужно именно c++ не c
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2010, 18:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Чтение строк из файла (C++):

Чтение строк из файла - C++
struct Questions { char quest; }QuestList; void main() { int numQuest=0; FILE *fp; fp = fopen("voprosy.txt",...

Чтение строк из файла - C++
Есть файл с 10 строками, необходимо вывести на экран четные строки ifstream file("C:\\1.txt"); for (int i = 0; i < 5; i++) { ...

Чтение строк из файла - C++
Добрый день имеется ряд вопросов касательно чтения строк из текстового файла. В папке с программой содержится файл TEST.TXT, в котором...

Чтение из файла в массив строк - C++
Всем добра! Пишу с таким вопросом: есть файл с текстом, длины строк не известны, надо задать динамический массив string (ну чтобы можно...

Чтение из файла определеных строк - C++
Здравствуйте. Как реализовать чтение из файла (например: каждой 3 и каждой 7 строки )

Чтение файла в массив строк - C++
Доброго времени суток!!! Как считать файл в массив строк? Заранее спасибо!!!

24
Adler
78 / 78 / 3
Регистрация: 07.05.2009
Сообщений: 316
15.05.2010, 13:49 #2
попрубй так:
C++
1
fscanf(f,"%[^\n]",s);
0
CyBOSSeR
Эксперт С++
2305 / 1675 / 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;
}
5
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
15.05.2010, 17:14  [ТС] #4
CyBOSSeR, а если у меня строки в стиле С (char)?
знаю что стринг удобнее но всеже)

стринг читает пока не будет конца - тоесть всю строку гетланйн
а вот cin.getline() надо указывать длинну..
0
CyBOSSeR
Эксперт С++
2305 / 1675 / 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
}
1
Krist_ALL
9 / 9 / 0
Регистрация: 01.02.2010
Сообщений: 317
15.05.2010, 18:01  [ТС] #6
а я вот такой код нашел ..
C++
1
while (fin.getline(buf, l_buf)){
0
CyBOSSeR
Эксперт С++
2305 / 1675 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
15.05.2010, 18:04 #7
Krist_ALL, те же яйца, только в профиль. Попробуй.
1
alex_x_x
15.05.2010, 18:11
  #8

Не по теме:

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

0
-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;
}
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 строки.
1
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;}
0
Valentina
68 / 68 / 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;}
2
moskalukigor
2 / 2 / 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();         //закрываем все открытые (в нашем случае один) файлы.
     }
}
Думаю вам поможет.
1
Миниатюры
Чтение строк из файла   Чтение строк из файла  
maestro4250
11 / 11 / 1
Регистрация: 01.04.2015
Сообщений: 120
21.05.2015, 20:47 #14
а если мне нужно 1 строку считать обработать потом прыгнуть на вторую ?
0
lss
921 / 850 / 281
Регистрация: 10.10.2012
Сообщений: 2,701
21.05.2015, 21:26 #15
Цитата Сообщение от maestro4250 Посмотреть сообщение
а если мне нужно 1 строку считать обработать потом прыгнуть на вторую ?
maestro4250, ты что по темам прыгаешь? Я же тебе написал, что у тебя и так прыгало.
0
21.05.2015, 21:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.05.2015, 21:26
Привет! Вот еще темы с ответами:

Чтение строк из бинарного файла. - C++
Вот как происходит запись строк pr.login и pr.password: FILE *f; f=fopen(path,&quot;ab&quot;); if (f!=NULL) { cout&lt;&lt;&quot;Файл концигурации...

Чтение из файла (массив строк) - C++
Здравствуйте, не могли бы вы мне помочь, есть данная задача Реализовать структуру «Ticket» – билет на самолет, содержащую информацию о...

Чтение из строк из файла по одному символу - C++
Всем добрый вечер! Делаю контрольную на С++ и так как никогда не писал на С, (только на паскале и делфи) возникли вопросы. Вопрос...

Чтение строк из файла .doc/.docx - C++
При считывании строк из доков, как я это делаю для .txt, выводятся непонятные символы. Как считывать из доков ?


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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