C语言 输入带 回车 的字符串

想用一个字符串数组存储一篇文章,又包含回车、空格等…根据我自己的知识…用scanf感觉是不行的,因为scanf可以用[^t]屏蔽空格,但是遇到回车就行了,他会自动输出。感觉getchar可以,因为getchar是遇到EOF才结束的。所以写了一段代码。#include <stdio.h>main(){int MAX=100; int psg[MAX]; int i;do{psg[0]=getchar();i++;}while(psg[i-1]!=EOF);printf("%s",psg); return 0;}编译没问题。运行后就不行了,输入完后,按Ctrl+C结束,什么都输出。如果在printf("%s",psg);那边设置断点的,程序崩溃,并且根据编译器提示,psg里面也根本就不是我输入的东西。如图:网上找了很多资料,都没有这方面的内容。似乎C语言无法完成对一篇文章的输入啊…
最新回答
携余温的黄昏

2024-11-07 22:08:54

也许....你i没初始化代码也有点问题

#include <
stdio.h
>

int main(int argc, char const *argv[]) {
    char psg[100] = "\0";
    int i = 0;

    do
    {
        psg[i] = getchar ( );
        i++;
    }while ( i <= 100);

    return 0;
}