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 :)
Wyzeruj liczbę przed scanf()
próbuję i nic z tego ;/, Czy ktoś mógłby napisać mi ten program ?
100zł (przelew lub paysafecard) dziś wieczór, pisz na PW.
jeśli nie jesteś w stanie tego napisać, to albo komuś zapłacisz albo przeczytasz jakiś poradnik do fstreama...
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++.
Wrzuć kod ;p
Pokaż: kod, dane wejściowe oraz dokładniej co oczekujesz.
#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.
#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;
}