[英]I keep getting a C2198 Error in my program for C
#include <stdio.h>
void wordGenerator(unsigned int number[]); // prototype
// function to form words based on phone number
void wordGenerator(unsigned int number[])
{
unsigned int loop; // loop counter
unsigned int loop1; // loop counter for first digit of phone number
unsigned int loop2; // loop counter for second digit of phone number
unsigned int loop3; // loop counter for third digit of phone number
unsigned int loop4; // loop counter for fourth digit of phone number
unsigned int loop5; // loop counter for fifth digit of phone number
unsigned int loop6; // loop counter for sixth digit of phone number
unsigned int loop7; // loop counter for seventh digit of phone number
FILE* foutPtr; // output file pointer
char* phoneLetters[10] = { "", "", "ABC", "DEF", "GHI", "JKL",
"MNO", "PRS", "TUV", "WXY" }; // letters corresponding to each number
if ((foutPtr = fopen_s("phone.out", "w")) == NULL) // open output file
puts("Output file was not opened.");
else
{ // print all possible combinations
for (loop1 = 0; loop1 <= 2; ++loop1)
for (loop2 = 0; loop2 <= 2; ++loop2)
for (loop3 = 0; loop3 <= 2; ++loop3)
for (loop4 = 0; loop4 <= 2; ++loop4)
for (loop5 = 0; loop5 <= 2; ++loop5)
for (loop6 = 0; loop6 <= 2; ++loop6)
for (loop7 = 0; loop7 <= 2; ++loop7)
fprintf(foutPtr, "%c%c%c%c%c%c%c\n",
phoneLetters[number[0]][loop1],
phoneLetters[number[1]][loop2],
phoneLetters[number[2]][loop3],
phoneLetters[number[3]][loop4],
phoneLetters[number[4]][loop5],
phoneLetters[number[5]][loop6],
phoneLetters[number[6]][loop7]);
// output phone number
fputs("\nPhone number is ", foutPtr);
// loop through digits
for (loop = 0; loop <= 6; ++loop)
{
// insert hyphen
if (loop == 3)
fprintf(foutPtr, "-");
fprintf(foutPtr, "%d", number[loop]);
} // end for
} // end else
fclose(foutPtr); // close file pointer
} // end function wordGenerator
int main(void)
{
unsigned int loop; // loop counter
unsigned int phoneNumber[7] = { 0 }; // holds phone number
// prompt user to enter phone number
printf("%s", "Enter a phone number one digit at a time");
puts(" using the digits 2 thru 9:");
// loop 7 times to get number
for (loop = 0; loop <= 6; ++loop) {
printf("%s", "? ");
scanf_s("%d", &phoneNumber[loop]);
// test if number is between 0 and 9
while (phoneNumber[loop] < 2 || phoneNumber[loop] > 9) {
printf("%s", "\nInvalid number entered. Please enter again: ");
scanf_s("%d", &phoneNumber[loop]);
} // end while
} // end for
wordGenerator(phoneNumber); // form words from phone number
} // end main
I am trying to write a C program that, given a seven-digit number, writes to a file every possible seven-letter word corresponding to that number.我正在尝试编写一个 C 程序,给定一个七位数字,将与该数字对应的每个可能的七字母单词写入文件。 However I keep getting an error saying 'fopen_s': too few arguments for call in line 17. Can anyone help me figure this out?
但是,我不断收到错误消息,说“fopen_s”:第 17 行中调用的参数太少。谁能帮我解决这个问题? I am using Visual studios.
我正在使用 Visual Studio。
Based on the arguments you're using I think you want fopen
instead of fopen_s
.根据您使用的参数,我认为您想要
fopen
而不是fopen_s
。
https://en.cppreference.com/w/c/io/fopen https://en.cppreference.com/w/c/io/fopen
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.