在c中打开编号的文件

Ash*_*LSI 1 c fopen file char

我遇到的问题只是打开一个基于输入的数字文件.示例包括:

int main(int argc, char *argv[])
{
  int argument = atoi(argv[1]);
  FILE *fp;
  fp = fopen("/folder/item'argument'file", "r");
  //do stuff to the file
}
Run Code Online (Sandbox Code Playgroud)

传递4的示例将打开名为"item4file"的文件以供使用

我该如何解决这个问题?

衷心感谢任何和所有的帮助

Nat*_*pel 6

int argument = atoi(argv[1]);  
FILE *fp;
char address[50]; // choose the size that suits your needs
sprintf (address, "/folder/item%dfile", argument);
fp = fopen(address, "r");
Run Code Online (Sandbox Code Playgroud)

正如您可以从引用中读取的那样,终止空字符会自动附加到字符串中.

但是,如果要避免缓冲区溢出,则应使用snprintf(在上面的相同参考页中显示),声明缓冲区的最大大小,以便输入不会溢出它.

int argument = atoi(argv[1]);  
FILE *fp;
char address[50]; // choose the size that suits your needs
snprintf (address, 49, "/folder/item%dfile", argument); // 49 since we need one index for our null terminating character
Run Code Online (Sandbox Code Playgroud)