Salut J'ai une question sur les données inputing dans un tableauscanf nouvelle ligne magasin comme le premier élément du tableau
pourquoi ne dans le premier élément scanf magasin '\n'
du tableau dans ce code?
#include <stdio.h>
#include <stdlib.h>
#define MAX 10
int main (void)
{
// Global declarations
int str_length;
char str[MAX];
int count;
char temp;
// Statements
// prompt user for string length
printf("Enter string length: ");
scanf("%d", &str_length);
printf("Enter string: ");
// input string
for(count = 0; count < str_length; count++)
{
scanf("%c", &str[count]);
printf("%c", str[count]);
}
for(count = 0; count < str_length; count++)
{
temp = str[0]; // set temp to the first element
str[count] = str[count+1]; // set the next element to be the first element
str[str_length-1] = temp; // swap the first element and the last element
puts(str);
}
system("PAUSE");
return 0;
}
quand je 1234567890
entrée dans le tableau au lieu de 1 étant le premier élément, le premier élément est le caractère de saut de ligne '\n'
place.
merci d'avance pour l'aide.
que voulez-vous dire par comsumed le \ n? Pouvez-vous s'il vous plaît expliquer en détail parce que je veux vraiment savoir la raison pour laquelle printf n'a pas consommé \ n. merci beaucoup – bluebk
scanf lit à partir de stdin, où vous tapez un nombre suivi de \ n. scanf d'un% d ne consommera pas le \ n final. Vous devez le consommer et le jeter. –