【发布时间】:2016-10-16 01:48:30
【问题描述】:
我正在尝试从 getline() 访问文本,以便扫描它以查找特殊字符。该程序从一个文件中读取并创建另一个文件,但是我必须从第一个文件中删除 cmets 并将其打印到没有 cmets 的第二个文件中。在这种情况下,我需要能够读取所有 '%' 并删除右侧的所有内容。这是我家庭作业的一部分,我不是在找人来完成它并作弊。我只需要找到一种方法将行存储在 char 数组中,这样我就可以遍历并找到一个 '%'(如果存在)。
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
FILE *fp, *fp2;
char *line = NULL;
size_t len = 0;
ssize_t read = 0;
//int i = 0;
//line = test;
fp = fopen("taxDemo.m", "r");
fp2 = fopen("taxDemoNoComments.m", "w");
if(fp == NULL)
exit(EXIT_FAILURE);
while((read = getline(&line, &len, fp)) != -1){
/* for (i = 0; i < len; i++){
test[i] = line;
line++;
}
*/
//printf("%s", test);
printf("%s", line);
fprintf(fp2, "%s", line);
}
free(line);
fclose(fp);
fclose(fp2);
return 0;
}
【问题讨论】:
-
如果(fp == NULL)退出(EXIT_FAILURE)之后;你应该添加一个 if(fp2 == NULL) exit(EXIT_FAILURE);
-
line指向该行的第一个字符...您还需要知道什么?