我想創建一個程序,將文本文件轉換爲c,只是爲了它的樂趣。我的問題是輸出值與它應該是不同的。C程序省略字符
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
FILE *intf=fopen(argv[1], "r"); //input and output file
FILE *ocf=fopen(argv[2], "w");
char b[1000];
char *d;
char *s;
char *token;
const char delim [2] = "`";
fprintf(ocf, "#include <stdio.h>\n int main(void) {\n"); //Preparation
while (fgets(b, 20, intf) !=NULL) { //Ensure that EOF has not been reached
if (d = strstr(b, "print")) { //Search for "print" in the file
fprintf(ocf, "printf(\""); //Prepare for "printf("");" statement
s=strstr(b, "`"); //Search for delimiting character
token=strtok(s, delim); //Omit delimiting character
while(token != NULL) {
token[strlen(token)-1]=NULL; //Omit newline character that kept geting inserted
fprintf(ocf, "%s", token); //Print what was read
token = strtok(NULL, delim); //
}
fprintf(ocf, "\");\n"); //Finish printf() statement
}
}
fprintf(ocf, "\n}"); //Finish c file
printf("Creation of c file complete \n");
}
輸入文件:
print `hello\n world
print `Have a nice day
和輸出:
#include <stdio.h>
int main(void) {
printf("hello\n wor");
printf("Have a nice");
}
有人能告訴我在我在做什麼錯誤?
請修正您的代碼的縮進,使其更易於閱讀。 – 2013-02-23 00:50:19