我需要找到文件中一组数字的求逆度。
我从 -----BEGIN PUBLIC KEY-----
dsbsjhbgjpublickeycharacters
-----END PUBLIC KEY-----
文件中读取输入,格式为:
.txt
我不知道如何分隔输入(集合及其编号)。我曾想过将它们放在一个结构中,但到目前为止它没有用。 反转度 =小于索引值的数字数。例如,在SET 2中,反转度为0。
答案 0 :(得分:0)
您需要在卡住的地方张贴代码;那是获得帮助的最好方法。 无论如何,这里有一些粗略的代码可帮助您确定问题所在。我一直很简单,让您了解Vanilla C如何执行I / O。
#include <stdio.h> /* snprinf, fprintf fgets, fopen, sscanf */
int main(void)
{
char line_buffer[64];
FILE* infile = fopen("yourfile.txt", "r"); /* open file for reading */
while(fgets(line_buffer, 64, infile) != NULL)
{
char set_name[8]; /* construct a string w/ the set number */
snprintf(set_name, 8, "SET %c:", *(line_buffer+4)); /* no. is 5th char */
fprintf(stdout, "%s ", set_name); /* fprintf w/ stdout = printf */
int set[8];
int ind = 0;
for(int i=7; line_buffer[i]!='\0';) /* start from first number and end */
{ /* when string ends, denoted by the '\0' sentinel */
int n; /* using pointer arithmetric, read in and store num & consume */
sscanf(line_buffer+i, "%d %n", set+ind, &n); /* adjacent whitespace */
i += n; /* n from sscanf tells how many chars are read in */
fprintf(stdout, "%d ", set[ind]);
ind +=1;
}
fprintf(stdout, "\n");
}
return 0;
}