0

私の入力は次のようになります。

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); 
    }
}
4

1 に答える 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); 
     }
   }
 }

したがって、どのような問題が発生しても、モード、キー、データの定義、またはツリーの挿入/検索の実装のいずれかに対処する必要があります。

于 2012-11-17T15:34:56.660 に答える