0
// getline : empty string array and max length as input
// stores input stream to array and return its length

#include<stdio.h>
#define LENGTH 100
int getline1(char* , int );
int main(){
    char *s;
    int i;
    s=(char*)malloc(LENGTH*sizeof(char));
    i=getline1(s,LENGTH);
    printf("%s %d",s,i);
    return 0;
}

int getline1(char *s, int lim){

    int c ,i;
    i = 0;
    printf("%u",s);
    while(--lim >= 0 && (c=getchar()) != EOF && c = '\n'){
        *(s+i)=c; //error : lvalue required
        i++;
    }
    if(c=='\n'){
        *(s+i)=c;
        i++;
    }
    *(s+i)='\0';
    return i;
}

我收到上述行中提到的错误,任何人都可以告诉我出了什么问题。如果我使用arrays.getline,代码工作正常:空字符串数组和最大长度作为输入将输入流存储到数组并返回其长度

4

1 回答 1

0

它不能将值分配给*(s+i)表达式。可以理解的是,因为您取消引用它,将值留在该位置(这是一个常数)。

尝试s[i]改用。

于 2013-03-09T06:28:57.413 回答