如何在C中读取几个字符串后用空格读取其余行

时间:2012-11-17 12:19:39

标签: c input fgets

我的输入如下:

save 001 Some very long string with spaces... after three dots there , is also a comma

在此之后我打电话给:

load 001

它应该给我输出:

Some very long string with spaces... after three dots there , is also a comma

我正在尝试,但似乎没有任何工作例如:

while ((scanf("%s %s", mode, key)) != EOF) {
    if (strcmp(mode, "save") == 0) { 
        getchar();
        fgets(data, 100, stdin);
        root = save(root, key, data);
        root = balance_RBT(root, blc);
    }
    if (strcmp(mode, "load") == 0) {
        load(root, key); 
    }
}

2 个答案:

答案 0 :(得分:1)

也许此链接中的示例会有所帮助:http://www.cplusplus.com/reference/clibrary/cstring/strcmp/

如果您提供完整的代码,那就更好了。

答案 1 :(得分:0)

给出的输入/输出没有任何问题,代码的其余部分类似于:

#include <stdio.h>
int main() 
{ 
  char mode[444], key[333], data[222];
  while (1)
  while ((scanf("%s %s", mode, key)) != EOF) {
    if (strcmp(mode, "save") == 0) { 
      getchar();
      fgets(data, 100, stdin);
      printf("SAVE %s %s %s\n",mode,key,data);
    //root = save(root, key, data);
    //root = balance_RBT(root, blc);
    }
   if (strcmp(mode, "load") == 0) {
     printf("LOAD %s %s\n",mode,key);
     // load(root, key); 
     }
   }
 }

因此,无论您遇到什么问题,他们都必须处理您对模式,密钥和数据的定义,或树插入/搜索的实现。