2013-03-09 83 views
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; 
} 

我得到在上述行中提到的错误可以任何机构告诉什么是错的。空字符串数组和最大长度作为输入 存储输入流,以阵列并返回它的长度错误:需要左值

回答

0

它不能分配值给*(s+i)表达式:如果我使用arrays.getline代码工作正常。可以理解的是,既然你对它进行了解引用,那么就把这个值留在那个位置(这是一个常数)。

尝试使用s[i]代替。

+0

实际上我所做的是正确的。我专注于错误的路线。问题出现在“c ='\ n'”应该是c =='\ n'的时候。无论如何,我们都会反对。 – user2150837 2013-03-09 06:44:36

+0

我正要回答我自己的问题,但不能......我没有声望:((.... – user2150837 2013-03-09 06:47:17

相关问题