【发布时间】:2015-09-24 07:47:47
【问题描述】:
我正在尝试使用指针数组从文件中读取两行。但是,我没有在屏幕上看到任何东西。我已经尝试在线搜索,但无法解决问题。这是我在 mac 上使用 Netbeans 编写的代码。
int main(int argc, char** argv) {
FILE *fp;
char *points[50];
char c;
int i=0;
fp=fopen("/Users/shubhamsharma/Desktop/data.txt","r");
if(fp==NULL)
{
printf("Reached here");
fprintf(stderr," Could not open the File!");
exit(1);
}
c=getc(fp);
while(c!=EOF)
{
*points[i]=c;
c=getc(fp);
i++;
}
for(int i=0;*points[i]!='\0';i++)
{
char d=*points[i];
printf("%c",d);
if(*(points[i+1])==',')
{
i=i+1;
}
}
return (EXIT_SUCCESS);
}
【问题讨论】:
-
我个人会使用调试器
-
char *points[50]; char c;-->char points[50] ={0}; int c; -
我在不使用指针的情况下进行了尝试,并且效果很好。但是,我正在学习指针。因此,我必须有指针。
-
也许您应该动态分配内存并将其分配给代表两行的 2 个指针,或者可能分配给指向一系列单词的指针数组。你声明指针没问题,但不要指向任何东西,因为你没有使用 malloc。
-
另外,您没有检查是否溢出缓冲区或读取了多少字符。
标签: c++ c pointers file-handling char-pointer