Egy különös string igény.[MEGOLDVA]

 ( emberk | 2007. február 2., péntek - 20:30 )

Sziasztok Az a problémám, hogy egy statisztika programot szeretnék írni, amihez a következő kellene. itt következő apró kódrészletben a printf függvénben egy változó szerepljen a string hossz kiiratásának megváltoztatásakor

while (!feof(nevek)) 
			{
			fgets(nev,255,nevek);
			c=strlen(nev)-1;
			printf ("%.(ide kellene a "c"valtozo)s",nev);
			}

Ugyanis amiből szedi az adatokat egy olyan lista ami enterekkel tagolt névsor, de a statisztikát teljesen elrontja mert az entert is viaszi magával. Így az emberek adatit törve írja ki. Van arra megodás hogy a zárójel helyére egy változót tegyek mert akkor le tudnám vágni az entereket és nem törne sort.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Szerintem joval egyszerubb lenne kiszedned a vegerol az entert...
Konkretabban:

fgets(nev, 255, nevek);
if(nev[strlen(nev)-1] == '\n') nev[strlen(nev)-1] = '\0';
printf("%s", nev);

Ha [code][/code] közé teszed a kódot, akkor olvashatóbb.

--
trey @ gépház

bocs, javitottam..

Télleg erre nem is gondoltam köszi :D Mentségemre legyen szólva hogy kezdő volnék :D

Ez így rossz, crash lehet belőle!

inkább így:

while( fgets(nev, 255, nevek) )
{
   size_t len = strlen(nev);
   if( len>0 && nev[len-1]=='\n') 
      nev[--len] = '\0';

   printf("%s", nev);
}

Aha nekem is gyanús volt hogy így tulajdonképpen 2 vége lesza filenek.

Ja értem nem a dupla vég mert a \0-nal vége és kész. Hanem akkor van baj ha len 0 akkor az -1 et ad, így elrontja. igaz, de nincs üres sor a file-ben. De nem árt félni hátha rossz a file.

Zavaros a dolog, kérlek hogy fogalmazd meg más módon.