-
答案是肯定的。 你的 fp 是一个全局变量,全局变量是在 main 之前构造的,这意味着 fp 在你 cin 之前已经尝试过打开文件,此时名称还是空的,所以自然不能。
void main();
-
在 main 中,在 cin 之后定义 FP! 否则,当然,您无法打开名称为空字符串的文件。 注意 name 的第一个 Guest 字符是 0,后来都是 0,当文件打开并执行进入 main 时,输入文件名是没有用的。
都错了,是时候弥补了!
-
用路径拦截不好,太讲究了。
-
你可以把文件名保存为字符或字符串的数组,然后把数组作为参数传递给函数来读,我有一段像**这样的段落,你可以看看。
char * week[6]=;字符串数组表示文件名,该文件名被定义为字符通道数组。
下面是如何使用 prototype 函数读取这些文件的原型。
void gtreenode::creategtree(gtreenode *>char *x) x 是上面定义的字符通道数组。
else if(a==")")
top--;s 和 d 是未堆叠的。
else if(a==",")
d[top]++
else;如果你还是不明白,可以把我的程序源**发到你的邮箱里,好好看看,我的邮箱dww
-
读取文件的中文名不是一个参数,根据你的要求将文件名拼写成对应的字符串面子改样是不行的。
STL 可以使用 StringStream。
stringstream ss;
ss “文件名 < 如果 i 是 1,它将是”文件名 1”。
MFC 的 csstring 中有一个 format 方法,可以格式化字符串,比较方便。
-
假设文件名是 file1、file2、file3...。因此,首先创建一个字符数组 char filename[max name]; 最大名称取决于您的具体情况。
然后给出一个整数变量 int no = 1;
要读取,首先获取文件名,最好先获取 0 数组。
for(no = 1;no < max_no;no++) 最大值 no 取决于您拥有的文件数量。
添加后缀不是事实吗?
看看 sprintf 函数就知道了。
-
1. 获取不使用 MFC 的程序(包括子目录)中目录中的所有文件名。 将文件名放入足够大的缓冲区中,以容纳所有文件名。
函数的输入是要找到的根目录,输出是保存所有文件名的缓冲区。
算法:使用递归。
2. **: void FindFileIndir(char* rootdir, char* strret).
strcat(filepathname, "*");
is directory
if( (file_attribute_directory)
strcmp(, ".") &strcmp(, "..") )
else if( strcmp(, ".") &strcmp(, "..") )
while( !bsearchfinished )
else if( strcmp(, ".") &strcmp(, "..") )
elseelse
bsearchfinished = true; //terminate search}}
findclose(hsearch);}
-
使用字符数组保存字符串。
首先找到字符串到字符串结束标志'\0'第一个字符之前的最后一个字符,然后是循环,从后到前找到'\\'找到带有下标 k 的位置后,它是'\\'只要打破循环。
然后将下标 k 的位置写入结束标志中'\0'
-
通过寻找最后一个'\\'(strrchr() 似乎是这个函数),然后被截断;
-
找到最后一个'\\'(strrchr() 似乎是这个函数),然后被截断;
char[30] str = "c:/abc/def/";
strrchr(str, '/')[0] = '\0';
现在 STR 是"c:/abc/def"
-
你能再详细说明一下吗? 让我们举个例子!
-
1. 在Linux平台上,可以使用目录操作功能读取当前目录中的文件
包括 Windows 开发工具没有此头文件 include
#include
main()
closedir(dir);关闭目录指针}2,在Windows平台下,如VC也有类似的操作功能,如:
#include
#include
using namespace std;
#include
void main()
findclose(hfind);}
-
如果是 Windows,则有一个 API 用于遍历文件并在遍历时放入文件。
有两种类型的文档。 一种是文本,另一种是二进制的专用格式。 文本文件可以使用任何文本器打开,并且必须使用专用程序打开二进制文件。 >>>More