当我编译代码并运行它时,它说Segmentation Fault
。Linux中的分段错误
这里是我的代码:
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
int main()
{
int i;
char weather_value;
char weather_incoming[2000];
FILE *in;
in=fopen("home/pi/weather_project/weather_incoming.txt","r");
for(i=0;i<2000;i++)
{
fscanf(in,"%c",&weather_incoming[i]);
}
char* tagStartBegin = strstr(weather_incoming,"<pty");
char* tagStartEnd = strstr(tagStartBegin,">");
char* value = tagStartEnd+1;
char* tagEndBegin = strstr(tagStartEnd,"</pty>");
*tagEndBegin = '\0';
weather_value=*value;
printf("%c",weather_value);
fclose(in);
}
我必须找到从txt文件的天气值,<pty>
和一个人帮我这个之间。当我在windows(codeblocks)上编译它时,它工作得很完美,但是当我在linux(gcc)上编译它时,它一直向我发送Segmentation Fault
。 我该如何解决这个问题? 我不知道什么部分是错误的任何信息,因为该错误信息只是Segmentation Fault
你应该使用一个调试器(在Linux上,有gdb)。 –
代码有很多问题。文件句柄'in'将是错误的,你正在尝试读取它。你确定'家'而不是'/家'? – Jeyaram
用char'fscanf()'读取char文件看起来很奇怪。我敢打赌,你的错误与此有关。改为使用'fread()',并在一个读取语句中读取整个文件。我想这会做到这一点。 – oysteijo