Подсчет числа символов в каждой строке

  • Автор темы ra7
  • Дата начала
R

ra7

Гость
#1
Здравствуйте!!!!

У меня есть два файла: А.txt - который содержит 5 строк произвольной длины, B - сюда заносится результат подсчета символов от каждой строки.

И проблемы:
- считаются все строки, кроме последней.
- результат выводится на экран, но файл B при открытии выглядит пустым (там 5 пробелов)
- После вывода на экран количества подсчитанных символов от каждой строки, в конец пишется -1 (видимо проверка функции feof()

C++:
#include <stdio.h>
#include <conio.h>

main()
{
int t[5]={0,0,0,0,0}; 
int i;	

FILE *f1,*f2;
f1=fopen("A.txt","r");
f2=fopen("B","w");

char c1,c2;

i=0;

while(!feof(f1))
{  
c1=getc(f1);
if (c1 == '\n')
{	 
putc(t[i],f2);
i+=1;
}
else t[i]++;


}


fclose(f1);
fclose(f2);

putchar('\n');

f2=fopen("B","r");

while(!feof(f2))
{
c2=getc(f2);			  
printf("%d",c2);
} 

fclose(f2);





getch();
return 0;
}
(
 
B

bini1988

Гость
#2
Вот твой код с исправлениями:

C++:
// file.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>



int _tmain(int argc, _TCHAR* argv[])
{
int t[5]={0,0,0,0,0}; 
int i;	

FILE *f1,*f2;

f1 = fopen("C:\\С\\file\\A.txt","r");
f2 = fopen("C:\\С\\file\\B.txt","w");

char c1,c2;

i=0;
while(!feof(f1))
{  
c1 = getc(f1);
if (c1 == '\n')
{	 
fprintf(f2," %d ",t[i]); 
i+=1;
}
else t[i]++;


}


fclose(f1);
fclose(f2);

putchar('\n');

f2=fopen("C:\\С\\file\\B.txt","r");


while(!feof(f2))
{
int buf = fgetc(f2); 
printf("%c",buf);
} 

fclose(f2);





getch();
return 0;
}