我在开始一个分配给我的项目时遇到了一点困难。我不能使用字符串运算符、fgets
等。我需要将文件扫描到EOF。
以下是该文件的一个示例:
AND 3 2 1
OR 4 5 6
SPECIAL 4 5 6 7
我试图做的是设置一个while循环:
while (fscanf(circuit, "%s", cur_gate) != EOF){
然后尝试检查cur_gate字符串是什么:
if (cur_gate[0] == 'A'){
问题是,我不知道读完字符串后我将如何扫描3个整数。然后最终,一旦它读取特殊,我需要扫描4个整数。
我想将第一个整数存储在一个名为输出的数组中,其余的存储在一个名为输入的数组中。
总之,我应该如何根据我读取的字符串,先fscanf一个字符串,然后fscanf一个可变数量的整数?
根据我对您的问题的理解,下面的代码将对您有所帮助。
我假设,您只想将所有输出存储在一个数组中,类似地,所有输入存储在一个数组中。因此,根据您的示例,您希望在输出数组中存储3,4,4(单词后的第一个整数)。其余的整数需要转到另一个输入数组。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX_CHAR 256
#define MAX_IN 100
#define MAX_OUT 100
enum
{
FALSE = 0,
TRUE
};
int main()
{
char word[MAX_CHAR];
FILE *fp;
int i = 0, in[MAX_IN];
int o = 0, out[MAX_OUT];
int flag = FALSE;
fp = fopen("dict.txt","r");
if(NULL != fp)
{
while(fscanf(fp, "%s", word) != EOF)
{
printf("%s\n",word);
if(0 != isalpha(word[0]))
{
flag = TRUE;
}
else
{
if(TRUE == flag)
{
out[o] = atoi(word);
o++;
flag = FALSE;
}
else
{
in[i] = atoi(word);
i++;
}
}
}
fclose(fp);
}
int j;
printf("INPUT: ");
for(j=0; j<i; j++)
{
printf("%d\t",in[j]);
}
printf("\n");
printf("OUTPUT: ");
for(j=0; j<o; j++)
{
printf("%d\t",out[j]);
}
printf("\n");
return(0);
}
您给出的文件示例的输出
INPUT: 2 1 5 6 5 6 7
OUTPUT: 3 4 4
免责声明:代码已在我的环境中编译和测试。我鼓励您自己处理错误处理场景。
我希望你帮助我理解我应该如何做以下事情: 我有一个包含由空格“”分隔的整数的文件。我需要读取所有整数,对它们进行排序,并将它们作为字符串写入另一个文件。我写了一个代码,但是我一个字符一个字符地读,把这个单词放在一个字符子数组[Max_Int]中,当我遇到“”时,我把这些字符,现在是一个字符串,在原子化后放到另一个主Int数组中,直到到达文件的末尾,一个字符串接一个字符串,然后我对它们进行排序并将它
可能重复: 如何在Java中将字符串转换为int? 我的代码应该读取字符串,然后采取相应的操作,但如果字符串是一行数字,我需要这一行作为一个完整的数字(一个int)而不是作为一个字符串,这可以做到吗?
对于我正在学习的一门在线课程,我正在尝试保存我定义为变量的第二组整数、双倍和字符串,在使用扫描器读取它们(第二组)之后。问题是我不知道如何处理我定义的第二组变量。我尝试将它们实例化为一个新变量,但我总是遇到错误。我需要帮助读取每个变量,然后保存它们。
问题内容: 我正在使用Apache POI读取Excel文件。在阅读时,我注意到它将字符串作为浮点值。 如果我的单元格包含1,则它将获取为1.0 我从以前的问题中得到了一些提示,并修改了代码,但float表示仍然保持原样。 如何正确读取字符串和日期的数据? 问题答案: 对评论发表评论 问题是电话 这样做是在要求POI尝试将单元格从当前单元格(例如数字)转换为字符串。尝试执行此转换非常简单,这就是为
今天,我遇到了扫描函数的问题。假设您有一个类似于以下示例的结构。 如果运行以下代码 它会打印出来的 原因是fscanf函数假定a.bVal是一个整数,并覆盖a.nVal的前3个字节。这个问题可以通过下面的脏解来解决。 我的问题是,除了解释的解决方案之外,有没有更干净、更直接的方法来避免这个问题?
问题内容: 我有一个关于代码优化的问题(可以运行,但是太慢了……)。我正在阅读形式的输入 其中Xi,Yi是整数。我用于读取行,然后用于处理这些数字,如下所示: 问题在于,这种方法在处理大型数据集时似乎效率低下。您能否建议我做一些简单的改进(我听说可以使用一些整数分析int或regex)来提高性能?谢谢你的提示 编辑:也许我判断错了,必须在代码的其他地方进行一些改进… 问题答案: (更新的答案) 我