Odczyt z pliku, konwersja na liczb dziesietnych na U2

0

hej mam za zadanie stworzyc program ktory pobierze sobie liczby dzisietne z pliku dodatkowo te liczby ma zamienic na U2.. Tylko ze mam dwa osobne programy ktore robia to co powinny ale nie mam pojecia jak mam je polaczyc.. Prosze o pomoc..

0
int main() {
	int i, mask=1,liczba;
	printf("liczba= ",liczba);
	scanf("%d ",&liczba);
	int b[32];
	for(i=0;i<32;i++){
		if(liczba&mask)b[i]=1;else b[i]=0;
		mask<<=1;
	}
	printf("\n");
	for(i=31;i>=0;i--)
	printf("%d",b[i]);
	return 0;
}
0
int main(void) {
	FILE *plik;
	int x, i;
	plik = fopen("liczby.txt","r");
	if(plik==NULL)
	{
		printf("Brak zawartości pliku\n");
		return -1;
	}
	for(i=0; i<10; i++){
		fscanf(plik,"%d",&x);
		printf("%d\n",x);
	}
	fclose(plik);
	return 0;
	
	return 0;
}
1

W drugim programie zgubiłeś return i masz pustą linijkę, powinno być:

int main(void) {
    FILE *plik;
    int x, i;
    plik = fopen("liczby.txt","r");
    if(plik==NULL)
    {
        printf("Brak zawartości pliku\n");
        return -1;
    }
    for(i=0; i<10; i++){
        fscanf(plik,"%d",&x);
        printf("%d\n",x);
    }
    fclose(plik);
    return 0;
    return 0;   // teraz jest OK
    return 0;
}
0
myszkapyszka napisał(a):

hej mam za zadanie stworzyc program ktory pobierze sobie liczby dzisietne z pliku dodatkowo te liczby ma zamienic na U2.. Tylko ze mam dwa osobne programy ktore robia to co powinny ale nie mam pojecia jak mam je polaczyc.. Prosze o pomoc..

0

hej napisałam coś takiego ale nie moge dojść do tego co robie tutaj żle POMOCY!

int main() {
	int liczba,i;
	FILE *plik;
	plik = fopen("liczby.txt","r");
	if(plik==NULL){
		printf("Brak zawartosci pliku\n");
		return -1;
	}
	printf("Start\nLiczby: ");
	for(i=0;i<10;i++)
	bin(liczba);
		fscanf(plik,"%d",&bin);
printf("%d",bin);
fclose(plik);
return 0;
}
void bin(int a){
	int i,x;
	int b[32];
for(i=0;i<32;i++){
	b[i]='0';
	while(a>0){
		x=x>>1;
		printf("%d",a);
		}
		printf("%d",b[i]);
		scanf("%d",&b[i]);	
}
return;
}
2
  1. Zapoznaj się z pojęciem formatowania kodu: http://4programmers.net/Forum/998482
  2. Zapoznaj się z inkrementacją której wciąż nie rozumiesz: http://4programmers.net/Forum/1101404
  3. Znajdź i przeczytaj czym są nawiasy klamrowe i czemu służą

W sumie programowanie poprzez wstawianie komend w losowe miejsca z góry skazane na porażkę, radzę zacząć od byle kursu których pełno w google.

3
myszkapyszka napisał(a):

co robie tutaj żle

W sumie wszystko. Przeczytaj jakiś kurs, to zadanie jest bardzo podstawowe i w ciągu kilku lekcji powinieneś być w stanie je zrobić.

  1. formatowanie - tragiczne. Użyj http://format.krzaq.cc jak sam nie umiesz,
  2. if(plik==NULL){ printf("Brak zawartosci pliku\n"); nie, to oznacza, że nie udało się otworzyć pliku. Otwarcie pustego pliku jak najbardziej zwróci poprawny wskaźnik,
for(i=0;i<10;i++)
    bin(liczba);
        fscanf(plik,"%d",&bin);
printf("%d",bin);

Wtf?!
4. bin(liczba); - działanie na niezainicjalizowanej zmiennej - ub
5. fscanf(plik,"%d",&bin); - nadpisanie funkcji wczytaną liczbą - ub i na większości systemów crash programu, bo instrukcje są w pamięci z flagą read-only
6. printf("%d",bin) - wypisujesz wskaźnik na funkcję jako integer. bzdura.
7.

    while(a>0){
        x=x>>1;
        printf("%d",a);
        }

Pętla albo nieskończona, albo wykonująca się zero razy.

Pewnie jest więcej, ale już mnie mózg boli od tego kodu.

Aha, po przeformatowaniu wygląda on tak:

int main()
{
    int liczba, i;
    FILE* plik;
    plik = fopen("liczby.txt", "r");
    if (plik == NULL) {
        printf("Brak zawartosci pliku\n");
        return -1;
    }
    printf("Start\nLiczby: ");
    for (i = 0; i < 10; i++)
        bin(liczba);
    fscanf(plik, "%d", &bin);
    printf("%d", bin);
    fclose(plik);
    return 0;
}
void bin(int a)
{
    int i, x;
    int b[32];
    for (i = 0; i < 32; i++) {
        b[i] = '0';
        while (a > 0) {
            x = x >> 1;
            printf("%d", a);
        }
        printf("%d", b[i]);
        scanf("%d", &b[i]);
    }
    return;
}

I na zakończenie, standardowa wklejka:
Oczekujesz pomocy czy rozwiązania za Ciebie?

  1. Jeśli pomocy: pokaż kod, staraj się zastosować do Dlaczego nikt nie odpowiada w moim wątku?
  2. Jeśli wykonania za Ciebie: http://4programmers.net/Forum/Og%C5%82oszenia_drobne (jestem w stanie wykonać zadanie za zaledwie 250zł)

W tym przypadku pomimo dostarczenia kodu poziom jego bezsensowności pozwala mi domniemywać, że w jego stworzenie wysiłek został włożony żaden.

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