【问题标题】:fopen() does not working well with gvim editorfopen() 不适用于 gvim 编辑器
【发布时间】:2011-04-01 10:17:51
【问题描述】:

首先,我的英语不太好..请理解:)

当我尝试使用 fopen() 和 gvim 打开文本文件来写一些东西时,例如FILE *f = fopen("data.txt", "w");,我在任何地方都找不到 data.txt 文件。不仅是当前目录,而且在 Windows 资源管理器中。但是..没有文件它工作正常。 :|

我有疑问,所以我试过这个FILE *f = fopen("c:\my\..."data.txt", "w");指定路径,工作得很好!

我知道文本文件与执行文件夹存储在同一文件夹中。

当然,其他 IDE 运行良好。(MSVS 或 Dev C++) 我有什么问题??

(我使用的是 Windows7 和 gvim。)

// Modification
// source code

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE *f = NULL;
    int name[10];

    if((f = fopen("data.txt", "w")) == NULL){
        printf("sorry..\n");
        system("pause");
        exit(1);
    }
    fprintf(f, "%s\n", "Dennis");
    fclose(f);

    if((f = fopen("data.txt", "r")) == NULL){
        printf("sorry2..\n");
        system("pause");
        exit(1);
    }
    fscanf(f, "%s", name);
    printf("%s\n", name);

    fclose(f);
    system("pause");
    return 0;
} // I think it's no problem. I've tried different ways to try several times.

我会编译这个 -> 地图:! gcc % -o %<.exe vimrc. cntl f9 vim fopen fscanf windows>

【问题讨论】:

  • 我怀疑这与您使用 gvim 的事实有关。
  • 你能用五行或十行代码重现这个问题,你可以在这里粘贴吗?
  • 每次都要指定路径吗?很麻烦。。
  • 给萨诺德。当然。但很难看到:)
  • if((f = fopen("data.txt", "w")) == NULL) { 一些警告并退出.. } fprintf(f, "%s\n", "丹尼斯"); f关闭(f); if((f = fopen("data.txt", "r")) == NULL) {...} fscanf(f, "%s", name); f关闭(f); // 文件不存在,但正在工作。就是这样。。

标签: c windows vim


【解决方案1】:

我只能猜测,但我认为您的问题是 gvim 没有更改为您的文件目录。

对此有一个简单的补救措施:autochdir

尝试使用 Windows 的搜索应用程序来定位您的 data.txt。如果你从开始菜单启动 gvim,它们应该在 "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Vim 7.3"。

【讨论】:

  • 谢谢你 hynek :) autochdir 是个好答案!但我找不到data.txt。是的谜
  • 我想它会在您的文件系统中的某处。试试 windows finder(按 Windows-f)。 :)
  • 我之前尝试过(在文件夹选项中选中“显示隐藏文件”)。但我找不到...
  • 你能编辑你的问题并详细说明你在做什么吗?这是一种猜谜游戏,现在可以帮助你。你如何编译?你如何启动程序?您使用哪个编译器?
  • 感谢您的关注。我现在将编辑我的问题。 :)
猜你喜欢
  • 2016-12-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多