美文网首页
scanf()输入字符串的注意事项

scanf()输入字符串的注意事项

作者: 清脆de琉璃 | 来源:发表于2016-09-24 08:51 被阅读0次

我们有这样一个需求,同时输入一个字符串和一个int数字,中间用逗号隔开,然后打印出来。

#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
    char str[30];
    int num;
    scanf("%s,%d", str, &num);
    printf("%s,%d\n", str, num);
}

我们输入Tom,3希望得到的打印结果是Tom,3,即逗号前面赋值给str,逗号后面赋值给num
但是实际输出结果是:Tom,3,0
因为逗号没有作为字符串的分隔符,输入的Tom,3会当成整体传给str,而后面的num是一个默认值。

我们可以有两种方式改变:

  1. 利用cin.getline()先传入str,定义分隔符为逗号。然后再scanf()数字。
cin.getline(str, 30, ',');
scanf("%d", &num);
  1. scanf()正则表达式。
scanf("%[^,],%d", str, &num);

据说还有va_list的实现方法,看到之后再更新总结一下。

相关文章

  • C++笔记

    C++笔记 一、输入输出 scanf 输入字符串,%c,空格是不会被跳过的 用scanf输入,出现非控制字符,则...

  • scanf()输入字符串的注意事项

    我们有这样一个需求,同时输入一个字符串和一个int数字,中间用逗号隔开,然后打印出来。 我们输入Tom,3希望得到...

  • C语言字符串操作和输入输入

    1.字符串的输入 (1)int scanf( const char *format [,argument]... ...

  • printf/scanf

    printf和scanf函数为重要的文字交互函数,printf用于输出字符串,scanf用于扫描用户输入,是终端界...

  • 字符串的输入输出 C/C++

    C字符串-字符数组 输入输出函数 输入函数 scanf("%s", s) 读入字符串,在第一个空白符(' '、'\...

  • scanf与gets的比较

    scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hel...

  • 04-2.C(字符串和函数)

    01.scanf 1)scanf将回车空格都当作字符串结束的标志2)以回车键作为输入完成的标识,但是回车键本身不会...

  • 笔记

    gets()函数输入字符可以含有空格;而scanf("%s",str),不能输入含有空格的字符串。 在C语言中,有...

  • C语言中三种输入函数的区别

    在C语言中,有三种主要的输入函数:scanf(),fgets()以及gets()。他们的使用方法及注意事项...

  • 字符串计算

    week 8 4-1字符串输入输出:格式:%schar string[8];scanf("%s",string);...

网友评论

      本文标题:scanf()输入字符串的注意事项

      本文链接:https://www.haomeiwen.com/subject/sdqxyttx.html