Kezdőoldal » Számítástechnika » Programozás » Ez miért nem működik? (C nyelv)

Ez miért nem működik? (C nyelv)

Figyelt kérdés

Itt a program:

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

struct mondatok

{

char mondat[30];

};

main()

{

setlocale(LC_ALL,"");


int i;

int sor;


FILE *fin;

fin=fopen("ujszoveg.txt","r");


struct mondatok tomb[sor];

sor=12;

for(i=0; i<sor; i++)

{

fgets(tomb[i].mondat,30,fin);

}

getch();

}

Itt a szövegfájl, amiből be szeretnék olvasni:

Ez az elso mondat

Ez a masodik mondat

Ez a harmadik mondat

Ez a negyedik mondat

Ez az otodik mondat

Ez a hatodik mondat

Ez a hetedik mondat

Ez a nyolcadik mondat

Ez a kilencedik mondat

Ez a tizedik mondat

Ez a tizenegyedik mondat

Ez a tizenkettedik mondat



2014. máj. 11. 13:06
 1/6 anonim ***** válasza:

fclose() és return hiánya tűnik fel, de ez nem okozna hibát.


Pontosan mit ír ki, megtalálja a fájlt? Ha kevesebb sort olvasol be akkor sem működik?

2014. máj. 11. 13:11
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Ja, és ki is szeretném íratni a képernyőre, amit gondolom for ciklus és printf segítségével kell, csak azt elfelejtettem beleírni a programba, csak az a baj, hogy már ennél is azt írja ki, hogy "uj.exe működése leállt".
2014. máj. 11. 13:11
 3/6 anonim ***** válasza:
Debugolni meg kell tanulnod. Próbáld soronként futtatni, minden fejlesztőkörnyetet ad erre lehetőséget. Kommenteld ki a kódot és próbáld ki részegységenként futtatni. Írd ki vmit soronként (kritikus sorok elé), akkor látod hol akad el.
2014. máj. 11. 13:14
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:

Sikerült :) Először kellett volna odaírnom, hogy sor=12, utána deklarálni a struktúrát. Közben beleírtam azt is, amivel ki lehet íratni, meg az fclose-t is. Megy a zöld kéz :)

#include <stdio.h>

#include <stdlib.h>

#include <locale.h>

struct mondatok

{

char mondat[30];

};

main()

{

setlocale(LC_ALL,"");


int i;

int sor;


FILE *fin;

fin=fopen("ujszoveg.txt","r");


sor=12;

struct mondatok tomb[sor];


for(i=0; i<sor; i++)

{

fgets(tomb[i].mondat,30,fin);

}

for(i=0;i<sor; i++)

{

printf("\n%s",tomb[i].mondat);

}

fclose(fin);

getch();

}

2014. máj. 11. 13:21
 5/6 anonim ***** válasza:
Legközelebb csak ott definiálj változót, ahol kell, és így csak fordítási hibát fogsz kapni.
2014. máj. 11. 13:27
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Oks ;)
2014. máj. 11. 13:29

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!