【问题标题】:Input with spaces用空格输入
【发布时间】:2015-11-30 12:54:57
【问题描述】:

所以我试图创建一个搜索功能......我有一个这样的结构,它保存到一个文件并在我想要的时候读取它......

 struct Entry{
        char title[100];
        char author[100];
        char series[100];
        char genre[100];
        struct Entry* next;
    };

每个 struct Entry *ptr 都由一个链表链接,所以每当我想搜索时,我都可以轻松完成...

问题是我希望我的输入是 [struct variable][space][substring]

例如,如果我想搜索其中包含单词树的所有标题,则输入应该是“标题树”......我该怎么做?我在想 scanf("%s %s") (虽然我知道这样做很愚蠢)但是如果用户输入的不仅仅是一个单词怎么办?...有人可以帮助我吗?

【问题讨论】:

  • 请提供一些真实的代码。我不明白你的问题。这个问题只是关于如何正确使用scanf吗?
  • 使用fgets() 进行用户输入:与scanf() 不同,它对错误进行了理智的处理。
  • 我已经编辑了我的问题...对不起,我不知道发生了什么...好吧,如果我使用 fgets,问题是...它将扫描文件直到换行...而在我的代码...我想在一行中扫描两件事...第一个单词是结构变量,第二个单词是:substring

标签: c input struct linked-list


【解决方案1】:

是的,您可以使用 scanf 扫描多个单词,但是

有更好的方法可以在不使用scanf的情况下进行扫描

但如果你坚持使用scanf,就这样使用吧:

scanf("%[^\n]",string);

有关更多信息,另请参阅:click

【讨论】:

  • 谢谢!...我认为它有效...我这样做了 scanf("%s %[^\n]",inp1,inp2) 并且它正在将第一个单词读取为 inp1第二个字符串作为 inp2 有更好的方法吗?...但对我来说看起来不错!...谢谢!!!
  • 如果有帮助,请标记为答案 :)@ClarenceGabrielRazonKasilag
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-11-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多