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

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

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

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

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

аааав
тоесть может быть вобще пустая строка.
нужно именно c++ не c
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.05.2010, 18:53
Ответы с готовыми решениями:

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

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

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

27
 Аватар для Adler
80 / 85 / 19
Регистрация: 07.05.2009
Сообщений: 336
15.05.2010, 13:49
попрубй так:
C++
1
fscanf(f,"%[^\n]",s);
1
Эксперт С++
 Аватар для CyBOSSeR
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
15.05.2010, 13:53
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
 Аватар для Krist_ALL
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
15.05.2010, 17:14  [ТС]
CyBOSSeR, а если у меня строки в стиле С (char)?
знаю что стринг удобнее но всеже)

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

Не по теме:

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

0
1 / 1 / 1
Регистрация: 09.04.2013
Сообщений: 3
09.04.2013, 23:55
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
а можете подсказать, в какой папке должен лежать файл, из котрого нужно прочитать данные?

вот мой код
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
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
71 / 71 / 13
Регистрация: 13.05.2012
Сообщений: 130
03.08.2013, 15:50
если нужно просто вывести содержимое файла, можно сделать так
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
Можно осуществить вывод текста через 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
а если мне нужно 1 строку считать обработать потом прыгнуть на вторую ?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
21.05.2015, 21:26
Цитата Сообщение от maestro4250 Посмотреть сообщение
а если мне нужно 1 строку считать обработать потом прыгнуть на вторую ?
maestro4250, ты что по темам прыгаешь? Я же тебе написал, что у тебя и так прыгало.
0
 Аватар для Hellgate
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
23.07.2015, 16:06
Товарищи, подскажите, если у меня в файле количество строк заранее не известно, то как написать цикл, в котором у меня поочередно будут считываться эти строки, а когда они закончатся, то произойдет выход из цикла?
0
3 / 3 / 0
Регистрация: 18.12.2012
Сообщений: 49
23.07.2015, 17:01
Цитата Сообщение от 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
 Аватар для Hellgate
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
28.07.2015, 16:43
мне при этом нужно выполнять манипуляции со строками, а вообще идеально было бы, если бы подсказали как обратиться к примеру напрямую к N-ной строке файла
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
28.07.2015, 16:54
Цитата Сообщение от FRINGE Посмотреть сообщение
вот
Так последнюю строку два раза выведет. Лучше так:
C++
1
2
3
4
while(getline(file, str))
{
    cout<<str<<endl;
}
Добавлено через 3 минуты
Цитата Сообщение от Hellgate Посмотреть сообщение
как обратиться к примеру напрямую к N-ной строке файла
Пропусти нужное количество строк с помощью file.ignore(200, '\n') (200 - предполагаемое максимальное количество символов в строке).
0
 Аватар для Hellgate
0 / 0 / 0
Регистрация: 26.09.2011
Сообщений: 11
28.07.2015, 17:27
Пропусти нужное количество строк с помощью file.ignore(200, '\n')
какую библиотеку нужно использовать для функции ignore ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.07.2015, 17:27
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru