atoi
'u kullanarak komut satırında iletilen argümanları int
'a dönüştürmeye çalışıyorum, ancak dizenin küçük veya büyük olmasına bakılmaksızın sonsuza dek devam ediyor. Herhangi bir fikir?Programımın çıktısında neden atoi() sonuçları görünmüyor?
int main(int argc, char *argv[]) {
int id;
int v[5];
id=atoi(argv[2]);
v[0]=atoi(argv[3]);
v[1]=atoi(argv[4]);
v[2]=atoi(argv[5]);
v[3]=atoi(argv[6]);
v[4]=atoi(argv[7]);
//conversion must be taking forever; this is never printed
printf("%d %d %d %d %d %d", id,v[0],v[1],v[2],v[3],v[4]);
return 0;
}
'argc' kontrol ediyor musunuz? V nedir? ** tamam ** minimal örnek gönderin. – gsamaras
Bu arada, "stdout" öğesinin çıkışının varsayılan olarak * satır arabelleği * olduğunu, yani bir satırsonu yazdırılana kadar hiçbir şeyin yazdırılmadığını biliyorsunuz. Çıktılarınızı her zaman bir son satır ile bitirin. –
Her ne oluyorsa, "atoi() nin sonsuza dek sürmesi" sorunun iyi bir açıklamasıdır. atoi() 'çok hızlı bir işlevdir. –