我正在做一项学校作业,其中一部分让我有点卡住了。我需要让用户根据需要输入尽可能多的分数,直到为分子输入 0,并将这些分数保存在我创建的结构中。
我试图让我们 strtok 将用于存储用户输入的 c 字符串按空格,然后按“/”,但我非常卡住,无法获得任何正确的输出(下面的代码是 main( ) 它有一个运行时错误,并且第二个 for 循环显然无法将任何适当的东西分配给 den)。
实现这一目标的最简单方法是什么。
#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;
struct Fraction
{
int num, den;
};
int main()
{
Fraction* fractions[100];
char s[100] ;
cout << "Enter fractions (end by entering a 0): ";
cin >> s;
const char* p;
int count = 0;
for (p = strtok( s, " " ); p; p = strtok( NULL, "," ))
{
const char* frac = p;
for (frac = strtok( s, " " ); frac; frac = strtok( NULL, "/" ))
{
fractions[count]->num = (int)frac;
count++;
}
}
return 0;
}