2012-05-16 26 views
1

我需要知道如何从用户读取输入并将答案打印出来。如何去 使用char数组来做这件事?如何从stdio打印并读取字符串

这我与

int array[500]; 
char array2[200]; 
printf("Please Enter The number of names: "); 
scanf("%d",&num); 

for(i=0;i<num;i++){ 
    array[i]=0; 
    array2[i]=""; 
} 
printf("\nPlease Enter names:"); 
for(i=0;i<num;i++){ 
    scanf("names: %s",array2[i]); 
} 
for(i=0;i<num;i++){ 
    printf("\n %s",array2[i]); 
} 
+0

有什么不对的地方,除了一个事实,即它不会编译,因为'num'从未宣布? –

+1

你有一个'char'数组而不是'char *'数组,这将会是一个问题。 – twain249

+1

@RafeKettler它会编译好,int隐含在C中,用你的C++编译器离开我的草坪 –

回答

0

这是正常工作的代码:

#include <stdio.h> 

#define MAX_PEOPLE 128 

static inline clear() 
{ 
    while (getchar() != '\n'); 
} 

int main() 
{ 
    int num, i; 
    int array[500]; 
    char array2[MAX_PEOPLE][200]; 
    printf("Please Enter The number of names: "); 

    while (1) 
    { 
     if (scanf("%d",&num) != 1 || num > MAX_PEOPLE) 
     { 
      clear(); 
      printf("Again: "); 
      continue; 
     } 

     break; 
    } 

    for(i = 0; i < num; i++) 
    { 
     array[i] = 0; 
     array2[i][0] = '\0'; 
    } 

    printf("\n"); 
    for(i = 0; i < num; i++) 
    { 
     printf("Please Enter names: "); 
     scanf("%s",array2[i]); 
    } 

    printf("\n"); 
    for(i = 0; i < num; i++) 
    { 
     printf("arr[%d] = %s\n", i, array2[i]); 
    } 

    return 0; 
} 
相关问题