Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/96: Рейтинг темы: голосов - 96, средняя оценка - 4.96
3 / 3 / 0
Регистрация: 10.10.2008
Сообщений: 15

Построчное чтение файла

10.10.2008, 11:29. Показов 18176. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите пожалуйста, не могу доделать программу, точнее я её сделала но не так как бы мне хотелось. Вот код программы(прога рабочая)

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
25
26
27
28
29
30
31
32
33
34
35
36
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream.h>
#define FNAME "abc.txt"
int main(void)
{
char fname [20]= FNAME;
FILE *in;
int a;
char k;
int n=0;
int sum=0;
 puts("\n vichslenie summi portov");
 printf("nahodyashihsia v file %s\n", fname);
if ((in = fopen(fname, "r"))== NULL)
 {
   printf ("Error open file");
   return 1;
 }
while((k = fgetc(in)) != EOF)
{  
    printf("%c", k);
}
fseek(in, 1, 2);
while((fscanf (in,"%i",&a,"\n")) != EOF)
{  
    sum +=a;
        n++;
    a = 0;
  }
fclose (in);
  printf("vvedeno portov: %i\n",n);
  printf("Summa portov :%i\n", sum);
return 0;
}
фишка вся в том что она считывает всю сумму чисел из текстового файла, а мне надо построчно......... и вот не знаю как сделать. Объясните или подскажите как сделать, программировать я только учусь, так что в этом деле я ещё чайник.....
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2008, 11:29
Ответы с готовыми решениями:

Построчное чтение файла в Си (linux)
Здравствуйте, помогите пожалуйста, нужно последовательно преобразовывать строки файла в числа (желательно unsigned short) и записывать в...

Построчное чтение из файла
Помогите пожалуйста, не могу доделать программу, точнее я её сделала но не так как бы мне хотелось. Вот код программы(прога рабочая) ...

Построчное чтение из файла
Необходимо построчно прочитать данные из файла, из разобрать их по переменным. Образец данных в файле: 4 Абрамович И.П. 284-84-15 ...

12
 Аватар для Sergei
1513 / 780 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
10.10.2008, 11:56
я думаю что тебе лучше будет использовать не printf а записывать и считывать через потоки iostream если попдробнее опишишь задание то помогу
0
3 / 3 / 0
Регистрация: 10.10.2008
Сообщений: 15
10.10.2008, 12:15  [ТС]
я программу делаю под linux
дан текстовый файл в который записаны числа
например вот так:
1 2
3 4
8 9 и т.д.
(числа записаны через табуляцию)

Надо вывести данные этого файла на экран и сумму чисел построчно, т.е. на экране должно быть вот это:
1 2
3 4
8 9
kol-vo =6;
sum[1]=3;
sum[2]=7;
sum[3]=17;

Надеюсь я понятно объяснила
0
 Аватар для Sergei
1513 / 780 / 103
Регистрация: 22.04.2008
Сообщений: 1,610
10.10.2008, 12:58
Вот код программы
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
25
26
27
#include <iostream.h>
#include <fstream.h>
#include <iomanip.h>
#include <stdlib.h>
void outputLine(int, int,int);
void main()
{
  const char fname[20] = "D:\\file.txt";//введи свое имя файла
    ifstream inClientFile(fname,ios::in);//sviazivaem potok s failom
    if(! inClientFile)
    {
        cerr<<"File cannot be opened!"<<endl;
        exit(1);
    }
    int a,b,c = 0;
    while (inClientFile>>a>>b)    
    {
        outputLine(a,b,c);
    }
} 
void outputLine(int a, int b,int c)
{
  c = a+b; 
    cout<<setiosflags(ios::left)<<setw(6)<<a<< " + " 
    <<setw(6)<<b<<" = "<<setw(5)<<c<<endl;
    
}
попробуй
1
3 / 3 / 0
Регистрация: 10.10.2008
Сообщений: 15
17.10.2008, 14:27  [ТС]
я попробывала, но прога не пошла компилятор выдал ошибки :

"In file included from /usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/backward/iostream.h:31,
from 555.cpp:1:
/usr/lib/gcc/i486-linux-gnu/4.1.2/../../../../include/c++/4.1.2/backward/backward_warning.h:32:2: warning: #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated."

вроде какой то библиотеки не хватает, как я поняла..........

Добавлено через 2 минуты 50 секунд
я уже думала может попробывать через матрицу сделать, но вот только как........? и наверно это будет слишком грамозко
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
17.10.2008, 14:33
Девушка, вам английским по белому сказано, что:
Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.
А именно, использовать вместо устаревшего iostream.h тот же заголовок но без .h. Т е, <iostream>. На самом деле, не только вместо него. Еще убрать .h со всех, кроме стдлибы.
И кстати, это не ошибка, а предупреждение. При предупреждениях файл генерится (если не указано иное). А еще вам говорят, что мол юзайте опцию -Wno-deprecated, чтобы варнингов на эту тему не было.

А еще советую, не юзать эту опцию, а подключать нормальные заголовки.

P. S. learn english
0
3 / 3 / 0
Регистрация: 10.10.2008
Сообщений: 15
22.10.2008, 09:17  [ТС]
У меня вопрос что это? объясните мне пожалуста........

C++
1
2
3
4
5
6
7
8
9
10
11
 ifstream inClientFile(fname,ios::in);//sviazivaem potok s failom
    if(! inClientFile)
 
 
 
 
void outputLine(int a, int b,int c)
{
  c = a+b; 
    cout<<setiosflags(ios::left)<<setw(6)<<a<< " + " 
    <<setw(6)<<b<<" = "<<setw(5)<<c<<endl;
В книжке смотрела не нашла........
0
Почетный модератор
7393 / 2639 / 281
Регистрация: 29.07.2006
Сообщений: 13,696
22.10.2008, 11:20
Что это "что"? Код? Ну тут просто устанавливаются флаги для вывода (ширина), да выводятся три переменные... А вверху инициализация потока.
0
3 / 3 / 0
Регистрация: 10.10.2008
Сообщений: 15
12.11.2008, 13:58  [ТС]
Всё равно не получается сделать программу, так что бы выполнялось чтение построчно...((((
0
118 / 12 / 3
Регистрация: 21.08.2007
Сообщений: 222
12.11.2008, 17:58
Всё равно не получается сделать программу, так что бы выполнялось чтение построчно...((((
Перл не подойдёт ?

Perl
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/perl -w
#
use strict;
 
if(defined($ARGV[0])) {
    open(FILE, $ARGV[0]) or die "Cannot open $ARGV[0]\n";
}
else {
    die "Specify argument as file name\n";
}
 
print while(<FILE>);
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
10.12.2008, 13:58
на C
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
25
26
27
28
#include <stdio.h>
 
#define MAXLINE   1000    /* максимальная длина строки */
#define MAXLINES  5000    /* максимальное количество строк */
 
/* выводит данные из файла на экран и сумму чисел построчно */
main()
{
    FILE *fp;
    char line[MAXLINE], *p;
    int i, a, b, nl, sums[MAXLINES], *np = sums;
    long cnt = 0;
    
    if ((fp = fopen("file.txt", "r")) == NULL)
        return 1;
    for (nl = 0; (p = fgets(line, MAXLINE, fp)) != NULL && nl < MAXLINES; nl++) {
        if (sscanf(line, "%d%d", &a, &b) != 2)
            break;
        cnt += 2;
        *np++ = a+b;
        printf("%d %d\n", a, b);
    }
    printf("total: %ld\n", cnt);
    for (i = 0; i < nl; i++)
        printf("sum[%d] = %d\n", i+1, sums[i]);
    fclose(fp);
    return 0;
}
вывод

Code
1
2
3
4
5
6
7
8
9
10
11
[guest@localhost tmp]$ cc test.c -o test
[guest@localhost tmp]$ echo -e "1\t2\n3\t4\n8\t9\n" >file.txt
[guest@localhost tmp]$ ./test
1 2
3 4
8 9
total: 6
sum[1] = 3
sum[2] = 7
sum[3] = 17
[guest@localhost tmp]$
0
0 / 0 / 0
Регистрация: 08.01.2009
Сообщений: 3
08.01.2009, 19:13
читать файл построчно? Я так понимаю, что говорим о C++?
Какая проблема в этом решении?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <fstream>
using namespace std;
#define BUF (256)
 
int main(int ac, char *av[]){
   char        buf[BUF] = {'\0'};
   fstream  fs("filename.ext", fstream::in);
   if(!fs.is_open())
        return 0;
   while( !(fs.getline(buf, BUF).eof() ){
        // делаем то, что надо со строкой в buf-e
        memset(buf, '\0', BUF);  // обнуляем на следующую итерацию
   }
   fs.close();
   return 0;
}
0
3 / 3 / 0
Регистрация: 10.10.2008
Сообщений: 15
29.01.2009, 13:30  [ТС]
спасибо, за помощь, я уже сделала программу...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.01.2009, 13:30
Помогаю со студенческими работами здесь

Построчное чтение из файла
Помогите, не могу разобраться с построчным чтением с файла. Т.е. у меня есть текстовый файл в котором множество строк. Мне нежно прочитать...

Построчное чтение из файла
Помогите написать программу которая считывает из файла такой структуры; 1 строка 5 7 2 строка ...

Построчное чтение файла
Здравствуйте. У меня возникла проблема с построчным чтением файла. На форуме так и не нашёл. Суть такая: Объявляется переменная String...

Построчное чтение из файла
Вечер добрый! С с++ только знакомлюсь. Нужно обработать файл. Построчно считываю данные, и обрабатываю их. Но вот ведь какая...

Построчное чтение из файла
такая проблема есть фаил в нем записана информация: 10 Петров А.Л. Сон 1991 4 51 Сидоров В.О. Луна 1970 5 ....... мне нужно считать...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru