// 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:空字符串数组和最大长度作为输入,代码工作正常 将输入流存储到数组并返回其长度
答案 0 :(得分:0)
无法将值分配给*(s+i)
表达式。可以理解,因为你取消引用它,将值保留在该位置(这是一个常数)。
请尝试使用s[i]
。