【问题标题】:trouble with fopen and sprintffopen 和 sprintf 的问题
【发布时间】:2013-06-14 01:10:58
【问题描述】:

我理解 fopen 在 C 中的语法是

fp = fopen ("file2.txt", "r");

我的问题是,如果我想打开一个 char 字符串中的 txt 文件路径,我可以这样做吗

char str[100];
FILE *fp;
sprintf(str, "\room%d.txt", 2);
fp = fopen (str, "r");

或者有更好的方法吗?

【问题讨论】:

  • 我怀疑你真的想要 \r - 也许是 \\r 或 /r 但不是 \r。
  • @DrC 这就是答案:)
  • 请注意,您必须将字符串文字中的反斜杠加倍才能获得系统的单个反斜杠。 "\newfile""\test.data""\abc.txt""\very-old-data.txt""\backup.txt""\file.txt""\31-oct.txt"等名称并不代表您的想法;把名字打印出来。您可以改用两个反斜杠或一个正斜杠来解决问题。

标签: c arrays fopen printf


【解决方案1】:

只要以str 结尾的路径是操作系统识别的路径,就可以正常工作

【讨论】:

    【解决方案2】:

    是的,你可以。但是你应该使用你要打开的txt文件的正确绝对路径或者相对路径。

    【讨论】:

      猜你喜欢
      • 2014-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-17
      • 1970-01-01
      相关资源
      最近更新 更多