c语言sscanf的问题
如果char*s,用fgets得到一行数据“message”message后面均为空格存在s里,再定义char*name和char*wert,动态分配内存,用sscanf...
如果char* s,用fgets得到一行数据“message”message后面均为空格存在s里,再定义char* name和char* wert,动态分配内存,用sscanf分割 sscanf(s,"%s%s",name,wert)
name里面是“message”,wert里面是什么值?是NULL还是空格符? 展开
name里面是“message”,wert里面是什么值?是NULL还是空格符? 展开
1个回答
展开全部
sscanf函数,可以 返回成功读入的参数个数。个数为1,表明 读 wert 失败。
char s[]="message \n"; // fgets 读一行,含新行键, 我们可以 预置字符串
static char name[20], wert[20]; // 全局量,保证初始内存清干净了,不含杂乱字符
int N;
N=sscanf(s,"%s%s",name,wert); // 成功读入的参数个数 存入 N
printf("N=%d\n",N); // 输出 N
// N 将得到 1, 因为 %s 格式会略去 空白(空格,新行键)
// 显然,wert 没有读到东西
//打印出来可见
printf("|%s|%s|\n",name,wert);
===
输出:
N=1
|message||
char s[]="message \n"; // fgets 读一行,含新行键, 我们可以 预置字符串
static char name[20], wert[20]; // 全局量,保证初始内存清干净了,不含杂乱字符
int N;
N=sscanf(s,"%s%s",name,wert); // 成功读入的参数个数 存入 N
printf("N=%d\n",N); // 输出 N
// N 将得到 1, 因为 %s 格式会略去 空白(空格,新行键)
// 显然,wert 没有读到东西
//打印出来可见
printf("|%s|%s|\n",name,wert);
===
输出:
N=1
|message||
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询