Program sumujący wiersze z plików txt

0

Witam,
Jestem początkującym programistą i mam problem ponieważ, muszę napisać program który pobiera liczby z wiersza pliku1.txt i liczbę z wiersza pliku2.txt, i sumuje obie liczby.
Gdy wiersz jest pusty brać jako zero, lub gdy któryś plik się skończy, a drugi jeszcze nie to również ma tak być. Program konczy sumowanie gdy dojdzie do EOF w obu plikach.
próbowałem zrobić to fscanf'em i w tablicach program działa połowicznie udało mi się sumować itd, ale nie wiem jak zrobić by gdy wiersz bedzie pusty brało jako zero lub gdy któryś plik się skonczy. Czytałem coś w sieci, że można wykorzystać argc i argv ale nie rozumiem tego i nie wiem jak sobie z tym poradzić... bardzo proszę o pomoc :)

0

Wyzeruj liczbę przed scanf()

0

próbuję i nic z tego ;/, Czy ktoś mógłby napisać mi ten program ?

2

100zł (przelew lub paysafecard) dziś wieczór, pisz na PW.

2

jeśli nie jesteś w stanie tego napisać, to albo komuś zapłacisz albo przeczytasz jakiś poradnik do fstreama...

0

Program piszę w ramach ćwiczeń na plikach.. nie będę płacił, liczyłem na pomoc w celu porównania jakby ktoś to napisał i do przeanalizowania kodu . Pracowałem nad programem dziś i wszystko jest dobrze oprócz tego, że gdy wiersz jest pusty pomija go i "szuka " następnej liczby w celu pobrania. Wykorzystuję fscanf i pobieram jako int czy to dobra droga do stworzenia tego programu ? Proszę o podpowiedzi jak mogę rozwiązać ten problem.
ps. UP. program pisze w C, a nie w C++.

0

Wrzuć kod ;p

0

Pokaż: kod, dane wejściowe oraz dokładniej co oczekujesz.

0
```c double ReadNext(FILE *file, double def = 0.0) { double x = def; fscanf(file, "%lf%*[^\n] ", &x); return x; } ```
0
 #include <stdio.h>
 #include <stdlib.h>
 #include <windows.h>
int main()
{
	
FILE *file1;
FILE *file2;
char plik1[30];
char plik2[30];
int suma=0,a=0,b=0,flaga=0;
printf("Podaj nazwy plikow :np. nazwa.txt\n\n");
	gets(plik1);
	gets(plik2);

if ((file1=fopen(plik1, "r"))==NULL) {
	printf ("Nie moge otworzyc pliku %s do odczytu!\n",plik1);
		exit(1);
		}

if ((file2=fopen(plik2, "r"))==NULL) {
	printf ("Nie moge otworzyc pliku %s do odczytu!\n",plik2);
		exit(1);
		}
while(flaga!=1){

if(!feof(file1))
 {
    fscanf(file1,"%d",&a);
	printf("%d. ",a);
	suma+=a;}
    else {printf("0. ");
	 suma+=0;};

if(!feof(file2))
 {
    fscanf(file2,"%d",&b);
	printf("%d. ",b);
	suma+=b;}
    else {printf("0. ");
	 suma+=0;};
sleep(1);
printf("%d \n",suma);
suma=0;

if(feof(file1)&&feof(file2)) flaga=1;
}

fclose(file2);	
fclose(file1);
	
	return 0;
} 

plik1:

1
1
2
2

1
4
1
8

plik2:

0
1
1
2

4

5
7

Program ma sumować wiersze. gdy wiersz jest pusty powinen brać go jako zero. Jak jeden z plików się skończy ma dodawać również zero.

1

http://ideone.com/IBrSaz

#include <stdio.h>

int main(void) 
{
	int i,x;
	char row[16];
	for(i=0;i<7;++i)
	  {
	   *row=0;
	   fscanf(stdin,"%15[^\n]s",&row);
	   fgetc(stdin);
	   x=0;
	   sscanf(row,"%d",&x);
	   printf("%d\n",x);
	  }
	return 0;
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1