3

私は完全な文を取得しようとしています。「これは文です。」「global」という名前のグローバル変数文字列に格納されます。次に、文を出力します。ただし、入力を入力した後、文の最初の単語しか印刷できません (This)。誰でもアイデアはありますか?

#include <string.h>

char** global;

int main () {

    printf("Please Enter Text: \n");
    scanf("%s", &global);

    printf("%s", &global);


    return 0;
}
4

3 に答える 3

4

のみであるchar** global必要がありますchar* global

&printf必要ありません。

fgets(var_name,no_of_chars,FILE*)の代わりに使用する必要がありますscanf

fgets(global,100,stdin); //where global is char global[100]; 

例 :

の使用はgets、私が考えていたよりも深刻です。そのため、推奨されなくなりました。

より良いもの

char global[100];    
int main () {
    printf("Please Enter Text: \n");
    if(fgets(global,50,stdin)) //It will take Maximum 50 chars. So no buffer overflow. 
    fputs(global,stdout);
    return 0;
}
于 2013-10-12T13:13:56.513 に答える
1

あなたはこのようなものを探しています:-

 scanf("%[^\t\n]",&global);

また、あなたのprintf&には必要ありません。次のようになります。

printf("%s", global);
于 2013-10-12T13:14:28.813 に答える