如何通过Eclipse使用C编写txt文件(通过控制台键入)
我试图在一些网页上找到这个问题的答案,最后我在这里找到了一个类似的答案,但根本不能满足我的问题 我是编程界的新手,所以我很抱歉我的问题太普通了。此外,我也对自己的英语技能感到惊讶 提前谢谢如何通过Eclipse使用C编写txt文件(通过控制台键入),c,eclipse-luna,C,Eclipse Luna,我试图在一些网页上找到这个问题的答案,最后我在这里找到了一个类似的答案,但根本不能满足我的问题 我是编程界的新手,所以我很抱歉我的问题太普通了。此外,我也对自己的英语技能感到惊讶 提前谢谢 #include "modificator.h" int main(void) { editFile(); return 0; } void editFile() { FILE* f; Cadena cad, r
#include "modificator.h"
int main(void) {
editFile();
return 0;
}
void editFile() {
FILE* f;
Cadena cad, res; //"Cadena is an array of char"
printf("Write the access rout to file required: \n");
scanf("%s", cad);
f = fopen(cad, "w");
if (f == NULL) {
printf("Wrong opening file\n");
}
const char *text = scanf("%s", res);
fprintf(f, "Some text: %s\n", text);
fclose(f);
}
不,不,不。scanf()
返回int
类型的值
int chk = scanf("%s", res); // beware buffer overflows
if (chk == 1) {
fprintf(f, "Some text: %s\n", res);
}
这是一个巨大的错误。谢谢现在问题不同了。它不显示“printf”短语,并且只显示一个单词,尽管我给出了一个256空格的字符数组,并使用指定符“%s”获取消息。
scanf()
with%s
忽略空格。使用fgets()
可能会更好,但我不想扫描文件或从文件中获取任何内容,只能在控制台放置的任何位置写入fgets()
可以读取stdin
=>假设res
是字符数组:while(fgets(res,sizeof res,stdin)){/*用res做你自己的事;你可能想删除res*/}
中的最后一个回车键,现在它永远不会停止接收文本,并且在代码开始时一直不向我显示printf。谢谢你的帮助和时间,也许改天我会再试一次
int chk = scanf("%s", res); // beware buffer overflows
if (chk == 1) {
fprintf(f, "Some text: %s\n", res);
}