【问题标题】:Char array to integer字符数组到整数
【发布时间】:2013-04-10 23:43:34
【问题描述】:

我有 2 个问题。

在 C++ 参考中

#include <stdio.h>

int main ()
{
  char sentence []="Rudolph is 12 years old";
  char str [20];
  int i;

  sscanf (sentence,"%s %*s %d",str,&i); <---
  printf ("%s -> %d\n",str,i);

  return 0;
}

问题 1. %*s 到底在做什么?

我的程序我正在构建一个哈希表。

它询问用户是否输入

q- quit
i <int> - inserts integer //must be on same line
d <int> - deletes integer //must be on same line
etc....

For example:

in order to insert "35" I would have to type:

i 35

问题 2。C++ 引用是否适用于 'q' 和 'i 35' 因为 'q' 没有整数?

char choice[10];
char option;
int i;

sscanf(choice, "%c %d", &option, &i);

如果输入了“q”(未附加整数)以及输入“i 35”(附加整数),这是否有效?

【问题讨论】:

    标签: c integer arrays


    【解决方案1】:

    这意味着它应该从流中跳过该类型。所以例如输入流是:

    "Rudolph is 12 years old"
    

    第一个%s 将捕获"Rudolph"%*s 将“读取但忽略”"is"(即不将其存储在变量中),然后%d 将读取并捕获@987654327 @。

    我不太清楚你的第二个问题是什么意思。我相信您在问"%s %*s %d" 格式是否可以与从输入中读取"q" 一起使用。在这种情况下,您应该使用不同的格式,例如 "%s""%c" 用于单个字符。

    针对您更新的问题,您可以轻松尝试并查看。在我的测试中,它确实与"q" 的输入一起工作:sscanfint 单独留下,但在"q" 中读取。

    【讨论】:

      猜你喜欢
      • 2017-10-29
      • 1970-01-01
      • 2012-10-09
      • 2018-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-07
      相关资源
      最近更新 更多