VS怎么把写好的程序和要用的文件联系起来?

img

请问已经写好完整可以运行的程序代码了,但是实际运行中要打开已经存在的文件并读取数据进行操作,我已经创建文件了,也在里面放了数据,请问直接写路径+名字不行吗?应该怎么做才能读到文件啊?

img

img

不能这样
你可以看看这个文章 很详细
你可以参考这个 把文件名改一下

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

int main () {
   FILE * fp;
   fp = fopen ("Ifile.txt", "w+");//写入
   fprintf(fp, "%s %s %s %d", "We", "are", "in", 2020);
   fclose(fp);
   return(0);
}





#include <stdio.h>

int main () {
   FILE *fp;
   int ch;
  
   fp = fopen("Ifile.txt","r");//读取
   while(1) {
      ch = fgetc(fp);
      if( feof(fp) ) { 
         break ;
      }
      printf("%c", ch);
   }
   fclose(fp);
   
   return(0);
}


想把 b.txt文件里的数据读取,并将读取到的数据打印到屏幕上,看代码,student 应是一个学生结构体的名字,下面代码里模拟了一个,可以忽略,供参考:

typedef struct Student{
    char stuname[16];
    int  studentID;
    int  stuscore;
}student;


void add_student() // 添加
{
    printf("------------------------*--------------------");
    FILE *fp;
    errno_t err;
    student a[N]; // 存放学生信息数组
    int i = 0, z = 0;
    err = fopen_s(&fp, "b.txt", "rb"); // 打开文件
    if (err != 0){                     // 如果文件打开错误,退出到上级函数
        printf("connot open file!\n");
        return;
    }
    while (1)  // 从文件读取信息到数组
    {
        if (fread(&a[i], sizeof(student), 1, fp) == 1)
            i++;
        else
            break;
    }
    fclose(fp); // 关闭文件
    for (z = i, i = 0; i < z; i++)  //输出到屏幕
        printf("%s %d %d \n", a[i].stuname, a[i].studentID, a[i].stuscore);
}