如何从标准输入C中获取一行数据

如何从标准输入C中获取一行数据,c,C,我想从标准输入中获取一行数据。在文件末尾返回一个空字符串。如果数据行不适合分配的空间,则存储适合的部分并丢弃输入行的其余部分 我可以写这封信,但我总是会犯这个错误,这意味着什么 下标值既不是数组,也不是指针,也不是向量dest[i++]=ch char * scanline(char dest, /* output - destination string */ int dest_len) /* input - space available i

我想从标准输入中获取一行数据。在文件末尾返回一个空字符串。如果数据行不适合分配的空间,则存储适合的部分并丢弃输入行的其余部分

我可以写这封信,但我总是会犯这个错误,这意味着什么

下标值既不是数组,也不是指针,也不是向量dest[i++]=ch

char *
scanline(char dest,    /* output   - destination string        */
         int  dest_len) /* input    - space available in dest   */
{
    int i, ch;

    /* Gets next line one character at a time.                */
    i = 0;
    for (ch = getchar();
         ch != '\n' && ch != EOF && i < dest_len - 1;
         ch = getchar())
        dest[i++] = ch;
    dest[i] = '\0';

    /* Discards any characters that remain on input line        */
    while (ch != '\n' && ch != EOF)
        ch = getchar();

    return (dest);
}
char*
扫描线(char dest,/*输出-目标字符串*/
int dest_len)/*输入-dest中的可用空间*/
{
int i,ch;
/*每次获取下一行一个字符*/
i=0;
for(ch=getchar();
ch!='\n'和&ch!=EOF和&i
C允许在数组和指针上使用下标运算符
[]
。在代码中,变量
dest
既不是数组也不是指针

一个可能的解决办法是更换

char *scanline(char dest, int dest_len) {


另外,调用
scanline()
函数时,必须将指针传递给数组及其大小。

C允许在数组和指针上使用下标运算符
[]
。在代码中,变量
dest
既不是数组也不是指针

一个可能的解决办法是更换

char *scanline(char dest, int dest_len) {


另外,调用
scanline()
函数时,必须传递一个指向数组及其大小的指针。

为什么不
fgets
?您忘记问问题了。请修复缩进。“它不工作”不是一个问题描述。并请提供一份。您的问题可能在未显示的代码的另一部分。为什么不
fgets
?您忘记问问题了。请修复缩进。“它不工作”不是一个问题描述。并请提供一份。你的问题可能在你没有展示的代码的另一部分。哦,当我读到scanline()时,我没有传递指针。谢谢,当我读到scanline()的时候,我没有传递任何指针。谢谢
char *scanline(char dest[], int dest_len) {