2017-02-23 121 views
-2

我想写这样的C程序,但编译器不断报告错误,它无法理解标识符'a'。有人能告诉我这里出了什么问题吗? 这里是代码和错误:使用未声明的标识符'a'

#include <string.h> 
#include <stdio.h> 
#include <fcntl.h> 
#include <unistd.h> 
#include <sys/types.h> 

int main() { 
    char buffer[200]; 
    memset(buffer,’a’,200); 
    int fd = open("test.txt", O_CREAT | O_RDWR); 
    write(fd, buffer, 200); 
    lseek(fd, 0, SEEK_SET); 
    read(fd, buffer, 100); 
    lseek(fd, 500, SEEK_CUR); 
    write(fd, buffer, 100); 
} 

/Users/messfish/Desktop/os1.c:9:18: error: non-ASCII characters are not allowed 
outside of literals and identifiers 
    memset(buffer,’a’,200); 
       ^
/Users/messfish/Desktop/os1.c:9:22: error: non-ASCII characters are not allowed 
    outside of literals and identifiers 
    memset(buffer,’a’,200); 
       ^
/Users/messfish/Desktop/os1.c:9:21: error: use of undeclared identifier 'a' 
    memset(buffer,’a’,200); 

我使用GCC的编译器。

+0

您正在使用周围的'了'错单引号。你应该输入***''a'' ***,而不是复制/粘贴它。 – jww

+0

你应该很好地检查错误的返回值,特别是从'open','read'和'write'。 – donjuedo

回答

1

您使用了错误的引号类型,可能是因为您从某处复制粘贴了引号。取而代之的

’a’ 

你想

'a'