我有一个编程任务。代码是为我们准备的,我们只需填写它。它已经有一段时间了,因为我触摸了数组,所以我需要一些帮助。
程序正在声明一个char数组。它使用fscanf从文件中获取字符串。该文件包含3行文本,其中两行由每行中的空格分隔。所以它看起来像“12345 abcd”。
他们已经循环了。问题:
1)每个字符串存储在数组ex:array [0] =“12345”和array [1] =“abcd”的单独值中。它不是这种格式,对吗? :array [16] = {1,2,3,4,5 ,, a,b,c,d}。 fscan处于循环中。格式:(fscanf(in,%s,array)
2)当调用fscanf时,它是否将12345作为单独的字符串处理(因为在五个之后有空格)或者它将“12345 abcd”作为文件中的一个字符串处理并返回它。
3)假设我使用fscanf在12345中扫描并将其存储在(array [0])中。然后我在另一个实例中使用fscanf。它会在数组[1]
中存储下一个字符串“abcd”由于
答案 0 :(得分:0)
不幸的是,您的问题没有显示任何代码,这使得它很难回答。我可以解释一个非常简单的例子,并希望它能帮助你。
假设您有一个文件“file.txt”,其中只有一行文本,两个字符串用空格分隔。正文是:“abcd 12345”。您可以运行以下代码从文件中读取这两个字符串,并将它们分别存储在两个char数组中。
FILE* file;
fopen_s(&file, "file.txt", "r");
char str1[10];
char str2[10];
fscanf(file, "%s %s", str1, str2);
回答你的问题1)第一个数组将如下所示:
str1[0] = 'a'
str1[1] = 'b'
str1[2] = 'c'
str1[3] = 'd'
str1[4] = '\0'
您并不关心其余部分,因为这些是以null结尾的数组。第二阵列:
str2[0] = '1'
str2[1] = '2'
str2[2] = '3'
str2[3] = '4'
str2[4] = '5'
str2[5] = '\0'
这是您的计划最有可能的工作方式。但是,可以将整行存储在一个数组中,这就是我们需要查看整个代码的原因。你也对char数组感到困惑。我建议您先阅读一些文档:http://www.cplusplus.com/doc/tutorial/ntcs/