您的位置:首页 > 其它

关于gets()和scanf()的区别

2014-05-27 00:26 197 查看
scanf读取时,遇到空格就停止读取而gets直到输入遇到换行符或EOF停止。

gets()读取时换行符不作为读取的内容,读取的换行符被转换为NULL,并由此来结束字符串。
gets()直接用在scanf后面时,要在之间插入一条gets()用于存储scanf结束时键入的回车符(换行符),否则该换行符会被当做gets()的结束符。

int total;

int i = 0;

char *temp;

char *line[ 100 ];

printf("please input the total number of lines:\n" );

scanf("%d", &total );

temp= ( char * )malloc( sizeof( char ) * INIT_LENGTH ); //这两行不能少,否则第一行会直接结束

gets(temp ); //

while( i < total ){

line[i ]= ( char * )malloc( sizeof( char ) * INIT_LENGTH );

gets(line[ i ] );

i++;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: