Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/1159: Рейтинг темы: голосов - 1159, средняя оценка - 4.77
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
1

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

14.05.2010, 18:53. Показов 242958. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне нужно читать строки из фалйа разной длинны

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

аааав
тоесть может быть вобще пустая строка.
нужно именно c++ не c
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2010, 18:53
Ответы с готовыми решениями:

Чтение строк из файла
Есть файл с 10 строками, необходимо вывести на экран четные строки ifstream file("C:\\1.txt");...

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

Чтение строк из файла
Добрый день имеется ряд вопросов касательно чтения строк из текстового файла. В папке с программой...

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

27
80 / 80 / 19
Регистрация: 07.05.2009
Сообщений: 316
15.05.2010, 13:49 2
попрубй так:
C++
1
fscanf(f,"%[^\n]",s);
1
Эксперт С++
2347 / 1720 / 148
Регистрация: 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;
}
8
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
15.05.2010, 17:14  [ТС] 4
CyBOSSeR, а если у меня строки в стиле С (char)?
знаю что стринг удобнее но всеже)

стринг читает пока не будет конца - тоесть всю строку гетланйн
а вот cin.getline() надо указывать длинну..
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 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
}
2
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
15.05.2010, 18:01  [ТС] 6
а я вот такой код нашел ..
C++
1
while (fin.getline(buf, l_buf)){
0
Эксперт С++
2347 / 1720 / 148
Регистрация: 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, это СИ.
это вообще регулярные выражения :D

0
1 / 1 / 1
Регистрация: 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;
}
1
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
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
70 / 70 / 13
Регистрация: 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
3 / 3 / 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();         //закрываем все открытые (в нашем случае один) файлы.
     }
}
Думаю вам поможет.
Миниатюры
Чтение строк из файла   Чтение строк из файла  
2
11 / 11 / 5
Регистрация: 01.04.2015
Сообщений: 120
21.05.2015, 20:47 14
а если мне нужно 1 строку считать обработать потом прыгнуть на вторую ?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
21.05.2015, 21:26 15
Цитата Сообщение от maestro4250 Посмотреть сообщение
а если мне нужно 1 строку считать обработать потом прыгнуть на вторую ?
maestro4250, ты что по темам прыгаешь? Я же тебе написал, что у тебя и так прыгало.
0
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
23.07.2015, 16:06 16
Товарищи, подскажите, если у меня в файле количество строк заранее не известно, то как написать цикл, в котором у меня поочередно будут считываться эти строки, а когда они закончатся, то произойдет выход из цикла?
0
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;}
вот ведь выше уже написали код.
1
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
28.07.2015, 16:43 18
мне при этом нужно выполнять манипуляции со строками, а вообще идеально было бы, если бы подсказали как обратиться к примеру напрямую к N-ной строке файла
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
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 - предполагаемое максимальное количество символов в строке).
0
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
28.07.2015, 17:27 20
Пропусти нужное количество строк с помощью file.ignore(200, '\n')
какую библиотеку нужно использовать для функции ignore ?
0
28.07.2015, 17:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.07.2015, 17:27
Помогаю со студенческими работами здесь

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

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

Чтение файла в массив строк
У меня есть код, не понимаю почему число строчек не влияет на количество работников массива...

Чтение строк из бинарного файла.
Вот как происходит запись строк pr.login и pr.password: FILE *f; f=fopen(path,&quot;ab&quot;); if...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru