Kezdőoldal » Számítástechnika » Programozás » Elszáll a program, mi az oka?

Elszáll a program, mi az oka?

Figyelt kérdés
[link]

2015. márc. 11. 17:50
 1/9 anonim ***** válasza:

struct adat{

short int azonosito; /*sorszám*/

char szoveg[80]; /*egy sornyi szöveg*/

int hossz; /*az aktuális sor hossza*/


}a;


A struct végén mit keres ott az az a?


Mellesleg compiler mutatni szokta hanyadik sor, ahhoz képest +/-1-et megnézel, és általában kiderül a hiba :-)

2015. márc. 11. 18:01
Hasznos számodra ez a válasz?
 2/9 A kérdező kommentje:
az a a égén elvileg a hivatkozásom, így a későbbiekben a.hossz -sza tudok a struktúrára elemére hivatkozni. Általában nem így használom, de mivel ha struct adat a{}; ként írom be, akko a következőt adja válaszul: error: variable 'adat a' has initializer but incomplete type
2015. márc. 11. 18:07
 3/9 A kérdező kommentje:
Ne haragudj a hibákért, csupán gyorsan gépeltem és meglehetősen figyelmetlenül.
2015. márc. 11. 18:08
 4/9 anonim ***** válasza:
Jó, és így mit ír?
2015. márc. 11. 18:24
Hasznos számodra ez a válasz?
 5/9 anonim ***** válasza:
Ja, várj... elszáll, nem compile error -.-" Bocs, későn van ma nekem, mindjárt ránézek részletesebben :-D
2015. márc. 11. 18:26
Hasznos számodra ez a válasz?
 6/9 SimkoL ***** válasza:
Hemzseg a hibáktól. Az in 'nevű' file-ból kellene olvasni amit már megnyitottál, nem az fp-ből - minek is az? - KELLENE OLVASNI és nem véletlenül nagy betű... Hirtelen ennyi és még maradt egy pár.
2015. márc. 11. 18:26
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
2015. márc. 11. 18:27
 8/9 anonim ***** válasza:

struct neve

{

int valami;

}a;


neve: Ha ez "adat a" egyértelműen hibát dob mert nem lehet szóköz a névben.


Végén az "a": Ez pedig nem hivatkozás hanem deklaráció, egyenlő ezzel: adat a;

2015. márc. 11. 19:06
Hasznos számodra ez a válasz?
 9/9 SimkoL ***** válasza:

Bár nem nagyon értem, hogy miket akarsz kiírni, de így lefut hiba nélkül:


#include<stdio.h>

#include<stdlib.h>


struct adat{

short int azonosito; /*sorszám*/

char szoveg[80]; /*egy sornyi szöveg*/

int hossz; /*az aktuális sor hossza*/

};


int strlen(char *s);

int dbszo(char *s);

struct adat a;


int main(){

FILE *in,*out,*fp;

in=fopen("feladat.txt", "r");

out=fopen("feladat.bin", "w+b");

while(fgets(a.szoveg, 80, in) != NULL){

a.hossz=strlen(a.szoveg);

fwrite(&a, 1, sizeof(a), out);

}

fclose(in);

fclose(out);

return 0;

}


int strlen(char *s){

int i=0;

while(*s){i++;s++;}

return i;

}


int dbszo(char *s){

int i=0;

char e=' ';

while(*s){

if((*s==' '|| *s=='\t'|| *s=='\n')&&(e!=' '&&e!='\t'))

{

e=*s;

s++;

}

}

return i;

}

2015. márc. 11. 19:32
Hasznos számodra ez a válasz?

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!