[ad_1]
このプログラムを実行しようとしていますが、同じエラーが発生し続けます。 終了文字がないことの意味と、コードでこれらの問題を修正するにはどうすればよいですか? 私にとっては、Repl ですべてが正常に動作します。 コピーして Linux に貼り付けたところ、これらすべてのエラーが発生しました。
RPS.c:162:10: 警告: 終端の ” 文字がありません
RPS.c: 関数「printResults」内:
RPS.c:162: エラー: 終端の ” 文字がありません
RPS.c:163: エラー: 「%」トークンの前に式が必要です
RPS.c:163:9: 警告: 終端の ” 文字がありません
RPS.c:163: エラー: 終端の ” 文字がありません
RPS.c:164: エラー: 予期された â;â before â}â トークン
コード:
/* * Description: Game of Rock, Paper, Scissors with the Computer. * * Author: Cole * * Date: 10-12-2018 */ #include <stdio.h> #include <stdlib.h> #include <time.h> //FUNCTION DECLARATIONS /*Function Name: flushscanf Input Parameters: c Description: Used after scanf. Prevents scanf from messing up, and EOF is used so it isn't read after the end of the file. Return Values: void */ void flushScanf(void); /*Function name: compareInputs Input parameters: userInput Description: Determines whether user input is acceptable to run the program. Makes upper and lower case r, p, s, and q acceptable inputs. Return Values: Results, error statement, or rock/paper/scissors. */ int compareInputs(char); /*Function name: getInput Input parameters: The userInput. Description: Tallies the wins for the computer and user, as well as the ties. Return Values: myWins++, pcWins++, or ties++. */ char getInput(); /*Function name: printResults Input parameters: int myWins, int pcWins, and int ties. Description: Prints the tallied wins and ties. Return Values: printf statement with correct record of results from games played. */ void printResults(int, int, int); int main(void) { //variables char userInput; int flag=1; int myWins= 0; int pcWins= 0; int ties= 0; int result; printf("Let’s play a game of Rock/Paper/Scissors \n"); // do{ userInput = getInput(); if(userInput == 'Q' || userInput == 'q') { printResults(myWins, pcWins, ties); printf("\nThank you for playing!"); flag =0; }else if(userInput == 'R' || userInput == 'r'){ userInput = 'r'; }else if(userInput == 'P' || userInput == 'p'){ userInput = 'p'; }else if(userInput == 'S' || userInput == 's'){ userInput = 's'; }else{ printf("Error, Please try again\n "); } result = compareInputs(userInput); switch(result){ case 1: myWins++; break; case 2: pcWins++; break; case 3: ties++; break; } }while(flag==1); return 0; } char getInput(void){ char userInput; printf("\nEnter R, P, S, or Q (for quit):"); scanf("%c", &userInput); flushScanf(); return userInput; } char check(char input){ } int compareInputs(char userInput){ srand(time(NULL)); int pc = (rand()%3)+1; // 1 = Rock // 2 = Paper // 3 = Scissors if (pc==1 && userInput == 'r'){ printf("You picked Rock, the computer picked Rock.\n"); printf("It's a tie.\n"); return 3; } else if(pc==1 && userInput == 's'){ printf("You picked Scissors, the computer picked Rock.\n"); printf("Rock breaks Scissors, you lose!\n"); return 2; }else if(pc==1 && userInput == 'p'){ printf("You picked Paper, the computer picked Rock.\n"); printf("Paper covers rock, you win!\n"); return 1; }else if (pc==2 && userInput == 'r'){ printf("You picked Rock, the computer picked Paper.\n"); printf("Paper covers rock, you lose.\n"); return 2; } else if (pc==2 && userInput == 's'){ printf("You picked Scissors, the computer picked Paper.\n"); printf("Scissors cuts Paper, you win!\n"); return 1; } else if (pc==2 && userInput == 'p'){ printf("You picked Paper, the computer picked Paper.\n"); printf("It's a tie.\n"); return 3; } else if (pc==3 && userInput == 'r') { printf("You picked Rock, the computer picked Scissors.\n"); printf("Rock breaks Scissors, you win!\n"); return 1; } else if (pc==3 && userInput =='s'){ printf("You picked Scissors, the computer picked Scissors.\n"); printf("It's a tie\n"); return 3; } else if (pc==3 && userInput == 'p'){ printf("You picked Paper, the computer picked Scissors.\n"); printf("Scissors cuts paper, You lose!\n"); return 2; } return 4; } void printResults(int myWins, int pcWins, int ties){ printf("\nYou won %d times, the computer won %d times, and it was a tie %d times", myWins, pcWins, ties); } void flushScanf(void) { char c = getchar(); while (c != '\n' && c != EOF) { c = getchar(); } }
私が試したこと:
エディターが異なる文字システムを使用している場合に備えて、引用符やその他の句読点を再入力しました。
解決策 2
これは、行とエラーの原因を示すコンパイラからのエラー メッセージです。 文字列を終了するのを逃したように聞こえます。
//your code char *text = "Hello world;
//correct code char *text = "Hello world";
あなたにとってのわずかな違い しかし コンパイラにとって大きな違いです;-)
ヒント: 複数のエラーでは、最初のエラーが重要なエラーです。 トランプの家のように、他の人を誘発するかもしれません。
解決策 1
引用:エディターが異なる文字システムを使用している場合に備えて、引用符やその他の句読点を再入力しました。
これは、問題が解決されたため、お客様に代わって修正できないことを意味します。 ほとんどの場合、二重引用符の 1 つが欠落しているか、代わりに一重引用符を入力しています。ただし、表示されているコードは、ここにコピーして貼り付けたときに説明したエラーを発生させないため、問題は既に解決されています!
ただし、別のエラーが発生します。 check
関数は何もせず、値を返しません。
解決策 6
#include
#include
構造化学生
{
イントロール;
フロート名[20]、コース[20];
};
ボイドメイン()
{
学生のストゥオブジ;
ifstream fp;
fp.open(*student.dat”, ios ::バイナリ);
fp.read((char *)&stuobj,sizeof(stuobj));
clrscr();
cout<<"\n学籍番号:"<
解決策 7
#include<fstream.h> #include<conio.h> #include<stdio.h> struct student { int roll; float name[20],course[20]; }; void main() { student stuobj; ifstream fp; fp.open(*student.dat", ios ::binary); fp.read((char *)&stuobj,sizeof(stuobj)); clrscr(); cout<<"\nStudent's Roll No.:"<<stuobj.roll; cout<<"\nStudent's Name:"; Puts(stuobj.name); cout<<"\nStudent's class:; puts(stuobj.course); cout<<"\nStudent's Presentage of Marks_percent; getch(); }
[ad_2]
コメント