我对这行代码有疑问:
scanf("%s %s %s", &op, &s1, &s2);
opPtr = &op;
s1Ptr = &s1;
s2Ptr = &s2;
if (strcmp(opPtr, "^") == 0 && (strcmp(s1Ptr, "A") == 0) && (strcmp(s2Ptr, "") == 0))
matrix_transpose(matA, ArowsPtr, AcolsPtr);
我scanf(op, s1, s2)
的目的是让用户输入对两个矩阵(s1 和 s2)的操作以及对它们的操作(op)。这包括 op = "*" || "+" || “^”,其中“^”是转置。
对于转置,我只需要 s1。因此,用户将输入“^ A[ENTER]”,然后 matA、ArowsPtr 和 AcolsPtr 将被调用到 matrix_transpose 函数中。
我的问题是当输入的操作是 '^' 时,我不明白如何忽略 s2Ptr 。我尝试将 s2Ptr 设置为空字符串并将 '\n' 添加到 strcmp(s1Ptr, "A\n") == 0 但这无助于忽略 s2。
我假设需要创建某种时间(EOF)。