我有以下程序将用户的输入写入文件.目前要写入的文件是预定义的; 但是,我想让用户从命令提示符定义文件名.添加此功能的最佳方法是什么?我无法理解如何将用户输入的字符串作为fopen()函数中的参数.我应该使用scanf()还是创建另一个getchar(),同时循环将chars存储在一个数组中,然后创建一个变量作为fopen()的参数或什么?
#include <stdio.h>
int main()
{
char c;
FILE *fp;
fp = fopen("file.txt", "w");
while ((c = getchar()) != EOF)
{
putc(c, fp);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这就是主要的论点:
#include <stdio.h>
int main(int argc, char **argv)
{
char c;
FILE *fp;
if (argc >= 2)
fp = fopen(argv[1], "w");
else fp = fopen("file.txt", "w");
while ((c = getchar()) != EOF)
{
putc(c, fp);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
如果你遵循这个,你可能想知道是什么argv[0].这就是程序名称的位置.某些操作系统环境将可执行文件的完整路径放在那里.其他人只放了程序名.其他人仍然把打字输入.
对于命令 ../../bin/someprogram
在Windows上,argv[0]是"C:\\Documents and Settings\\User\bin\\someprogram.exe"
在Linux/bash的, argv[0]是../../bin/someprogram
对的Ultrix/CSH,(我认为)argv[0]是/home/username/bin/someprogram