【发布时间】:2016-02-25 17:17:51
【问题描述】:
我想做以下事情:
打开并读取ASCII文件
定位子串(地理坐标)
- 创建其替换(对原始坐标应用更正)
- 覆盖原始子字符串(在原始文件中写入更正后的坐标)。
ASCII 文件的格式为: $GPGGA,091306.00,4548.17420,N,00905.47990,E,1,09,0.87,233.5,M,47.2,M,,* 53
我将只粘贴负责此操作的部分代码:
opnmea = fopen (argv[1], "r+");
if (fgets(row_nmea, ROW, opnmea)==NULL){
if (strstr(row_nmea,"$GPGGA")!=NULL) {
sscanf(row_nmea+17, "%10c", old_phi);
sscanf(row_nmea+30, "%11c", old_lam);
sscanf(row_nmea+54, "%5c", old_h);
fputs();
}
}
到目前为止,我所做的是在变量中提取旧坐标,我正在考虑使用 fputs() 用新值覆盖旧坐标。但我做不到。不在此处的代码的另一部分是计算正确的坐标。我的想法是逐行更正,因为 fgets() 函数读取每一行。
如果有任何建议可以告诉我如何使用 fputs() 或其他函数来完成我的工作,我将不胜感激。我正在寻找一些简单的东西,因为我是 C 初学者。
提前谢谢你。
【问题讨论】:
-
如果这是您想要而不是例如家庭作业——像 Python 这样的东西是更自然的选择,特别是如果你是 C 的初学者
-
if (fgets(row_nmea, ROW, opnmea)==NULL){:==错字为!=。
标签: c text substring overwrite