#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned len,i;
printf( "enter the letters length\n" );
scanf( "%u", &len );
char *data;
data = ( char * ) malloc (len * sizeof ( char ) );
printf( "enter the data\n" );
for( i = 0; i <len; i++ ){
scanf( "%c", &data[i] );
}
for( i = 0; i <len; i++ ){
printf( "%c", data[i] );
}
printf("%c",data[0]);
free(data);
return 0;
}
printf("%c",data[0]);为什么打不出来,而且存在问题,我待会发截图
abcd下一行怎么会空一行
不太明白缓存什么的,是每次用scanf以后,都要getchar();吗?我记得我原来编东西时,让用户输入行数,再输入列数,列数是没问题的啊,那时候也是输完行数,然后回车的
追答一般没问题,因为scanf()里面%d,%f,%s一类是从非空格,非‘\n’开始读数,而%c是一个一个读,所有空格,'\n',字符等都会读取。
数据是按回车后才送到内存缓冲区读取。
如for(;(c=getchar())!='\n';)
printf("%c",c);
输入computer
输出computer
而不是ccoommppuutteerr
scanf不会读取'\n'
gets会读取'\n'