Ich versuche, Zahlen von stdin zu einem Array zu bekommen. Die erste Zahl in stdin ist die Anzahl der Elemente im Array (die Zahl kann ein beliebiges int sein). Ich tat dies die erste Zahl zu erhalten:Abrufen von Zahlen von stdin zu einem Array in C
while(c=getchar()!=' '){
n*=10;
n+=atoi(c);
}
und erstellt dann ein Array der Größe n. Jetzt muss ich durch den ganzen Rest zu dem Array
while(c=getchar()!=EOF)
und fügen Sie Nummern gehen. Die Zahlen sind getrennt durch \ t und manchmal auch \ n. Wie würde ich das tun? Ich habe eine Stunde nachgedacht und habe immer noch keinen funktionierenden Code. Irgendwelche Hilfe? Danke!
WOW, ich wusste nicht, dass ich das tun könnte! Kannst du mir bitte erklären, warum irgendwas zwischen den Nummern ignoriert wird? Und wie geht der zweite Scanf von dort weiter, wo der erste Scanf gestoppt hat? – MinaHany
Die "% d" scanf-Konvertierung überspringt den Leerraum vor einer Zahl (und Tabulatoren und neue Zeilen werden beide als Leerzeichen betrachtet). Wenn Sie eine Datei öffnen, hat sie einen "current position" Indikator, der durch die Funktionen aktualisiert wird, die daraus lesen ('getc',' scanf', 'fread', etc.) –
aber im Fall von% ca weiß Raum wird korrekt gezählt? Ahh ja, ich weiß über die aktuelle Position aber wusste nicht, dass scanf es auch verwendet. – MinaHany