0

私のプログラムには、このように文字列を含む構造体が必要です

typedef struct _Node {

 char file[MAX];

//other stuff...

} Node;

Node *myPointer;

したがって、他の関数では、ユーザーから文字列を読み取り、構造体の「ファイル」変数に渡す必要があります。次のようになります。

char input[MAX];
scanf("%s", input);
(*myPointer).file = input;

問題は、ユーザーの文字列のサイズが可変であり、コンパイルできないことです...どうすればよいですか?

//私の英語でごめんなさい

4

9 に答える 9

3

これは C++ ソリューションです。

#include <string>
#include <iostream>

struct Node {
 std:string file;
};

それから

Node node;
std::getline(std::cin, node.file);
于 2013-06-14T08:22:29.790 に答える
0

を使用して構造体の型を宣言し、typedefその型へのポインターを作成しましたが、オブジェクトは作成されません。では、メモリがない場合、データをどこに置きますか。

最初にオブジェクトにメモリを割り当てます。

入力を取ってからご利用strcpy()ください。

于 2013-06-14T08:21:56.840 に答える
0

それはもっと簡単です:

scanf("%s", myPointer->file);

文字列の安全な対処です:

strncpy(myPointer->file, input, MAX);
myPointer->file[MAX - 1] = 0;
于 2013-06-14T08:51:55.913 に答える