C(基本内容)-将用户输入写入文件

用户6904864

基本上,我想让用户在文本文件(2列)中输入四个名称和四个等级。仅举例来说:

玛丽98

迈克60

约翰78

贝丝89

我希望能够读取文件(大概是使用fscanf)并显示最高/最低成绩及其平均值。所以我需要为所有输入创建变量,对吗?在今天的课堂上,我们学习了结构,所以我假设可能需要实现一种结构。我没有实际有用的代码,但这是它的开始:

.
.
.

int main()
{

int i;

FILE *Fpointer;
char input[100];
int input2[4];


Fpointer = fopen("file.txt", "w");

for(i = 0; i < 4; i++)
{
    printf("Enter a name>");
    scanf("%s", input);
    printf("Enter a grade>");
    // User Josh Bressers told me to change the below %d to %s
    scanf("%s", input2);
    // And the second %d to %s here
    // The program prints 4 names and 4 numbers perfectly now
    fprintf(Fpointer, "%s %s", input, input2);
    fprintf(Fpointer, "\n");

}

fclose(Fpointer);

return 0;


}

现在,该程序接受了用户输入的四个名称和数字,我将如何读取数字并进行第一段中列出的计算?任何帮助表示赞赏!

谢谢,

TP

编辑:自己搞定了(丑陋,但可行)

用户6904864

我自己弄的

#include <stdio.h>
#include <stdlib.h>


// Name of file to be created and data saved in
#define FILENAME "students_and_grades.txt"
// Size of arrays for names
#define NAME_ARRAY_SIZE 25


// Declare arrays
char arrcName1[NAME_ARRAY_SIZE];
char arrcName2[NAME_ARRAY_SIZE];
char arrcName3[NAME_ARRAY_SIZE];
char arrcName4[NAME_ARRAY_SIZE];
char arrcHighestName[NAME_ARRAY_SIZE];
char arrcLowestName[NAME_ARRAY_SIZE];


int main()
{
printf("----Tyler Procko----\n\n\n");

//Declare
int iScore1, iScore2, iScore3, iScore4;
int iHighestScore, iLowestScore;
double dScoreAverage;

// Declare file pointer
FILE *Fpointer;

// Open file for writing
Fpointer = fopen(FILENAME, "w");


// Ask user for first student name and score
printf("What is the first student's name?   ");
scanf("%s", arrcName1);

// Check range (0-100)
do
{
    printf("What is the first student's grade?   ");
    scanf("%d", &iScore1);

} while ((iScore1 < 0) || (iScore1 > 100));


// Ask user for second student name and score
printf("What is the second student's name?   ");
scanf("%s", arrcName2);

// Check range (0-100)
do
{
    printf("What is the second student's grade?   ");
    scanf("%d", &iScore2);

} while ((iScore2 < 0) || (iScore2 > 100));


// Ask user for third student name and score
printf("What is the third student's name?   ");
scanf("%s", arrcName3);

// Check range (0-100)
do
{
    printf("What is the third student's grade?   ");
    scanf("%d", &iScore3);

} while ((iScore3 < 0) || (iScore3 > 100));


// Ask user for fourth student name and score
printf("What is the fourth student's name?   ");
scanf("%s", arrcName4);

// Check range (0-100)
do
{
    printf("What is the fourth student's grade?   ");
    scanf("%d", &iScore4);

} while ((iScore4 < 0) || (iScore4 > 100));


// Print student name's and grades to file
fprintf(Fpointer, "%s %d\n", arrcName1, iScore1);
fprintf(Fpointer, "%s %d\n", arrcName2, iScore2);
fprintf(Fpointer, "%s %d\n", arrcName3, iScore3);
fprintf(Fpointer, "%s %d\n", arrcName4, iScore4);

// Close file
fclose(Fpointer);


// Open file for reading
Fpointer = fopen(FILENAME, "r");


// If file is there and working properly, scan it
if (Fpointer != NULL)
{
// Scan file for data
fscanf(Fpointer, "%s %d", arrcName1, &iScore1);
fscanf(Fpointer, "%s %d", arrcName2, &iScore2);
fscanf(Fpointer, "%s %d", arrcName3, &iScore3);
fscanf(Fpointer, "%s %d", arrcName4, &iScore4);

}

// Otherwise, ERROR
else
{
    printf("ERROR: File not found!");

}

// Display it all, just for the visual
printf("\nStudent one, %s, scored a %d.\n", arrcName1, iScore1);
printf("Student two, %s, scored a %d.\n", arrcName2, iScore2);
printf("Student three, %s, scored a %d.\n", arrcName3, iScore3);
printf("Student four, %s, scored a %d.\n\n", arrcName4, iScore4);


// Assume the first is the highest
iHighestScore = iScore1;
strcpy(arrcHighestName, arrcName1);

// Assume the first is the lowest
iLowestScore = iScore1;
strcpy(arrcLowestName, arrcName1);

// Compare score 2 to score 1
// Highest
if (iScore2 > iScore1)
{
    iHighestScore = iScore2;
    strcpy(arrcHighestName, arrcName2);

}

// Lowest
if (iScore2 < iScore1)
{
    iLowestScore = iScore2;
    strcpy(arrcLowestName, arrcName2);

}

// Compare score 3 to score 2 and 1
// Highest
if ((iScore3 > iScore2) && (iScore3 > iScore1))
{
    iHighestScore = iScore3;
    strcpy(arrcHighestName, arrcName3);

}

// Lowest
 if ((iScore3 < iScore2) && (iScore3 < iScore1))
{
    iLowestScore = iScore3;
    strcpy(arrcLowestName, arrcName3);

}

// Compare score 4 to score 3, 2 and 1
// Highest
if ((iScore4 > iScore3) && (iScore4 > iScore2) && (iScore4 > iScore1))
{
    iHighestScore = iScore4;
    strcpy(arrcHighestName, arrcName4);

}

// Lowest
 if ((iScore4 < iScore3) && (iScore4 < iScore2) && (iScore4 < iScore1))
{
    iLowestScore = iScore4;
    strcpy(arrcLowestName, arrcName4);

}

// Print highest and lowest scores and their respective students
printf("\nThe highest score was a %d from %s.\n", iHighestScore,               
arrcHighestName);
printf("The lowest score was a %d from %s.\n", iLowestScore, 
arrcLowestName);


// Perform average calculation and print result
dScoreAverage = (iScore1 + iScore2 + iScore3 + iScore4) / 4.0;
printf("\n\nThe test average is %.2f\n\n", dScoreAverage);


// Close file
fclose(Fpointer);

return 0;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将用户输入的字符串写入C中的文件

来自分类Dev

如何创建具有基本内容的多个文件-Parrot Linux

来自分类Dev

将用户输入写入文件

来自分类Dev

将用户输入保存到文本文件C ++

来自分类Dev

HashSet <T>基本内容

来自分类Dev

使用tee将用户输入写入文件

来自分类Dev

Google Apps脚本-将用户输入的内容从补充工具栏写入电子表格

来自分类Dev

具有基本内容的Python词典

来自分类Dev

CSS边框图片基本内容

来自分类Dev

获取所选节点的基本内容

来自分类Dev

用循环将用户输入写入文本文件

来自分类Dev

Python 2.7,将用户输入写入新的输出文件

来自分类Dev

Python-如何将用户输入写入Excel文件?

来自分类Dev

也将用户凭据写入文件

来自分类Dev

创建一个登录名,并使用php将用户输入的内容存储在文本文件中

来自分类Dev

如何在基本内容页面中使用 Reactive 的 WhenActivated

来自分类Dev

C#将用户输入匹配到数组

来自分类Dev

将用户输入的值存储到C中的字符指针?

来自分类Dev

在C中将用户输入作为shell命令执行

来自分类Dev

将用户输入从 C 传递给汇编程序

来自分类Dev

C++:如何将用户输入作为函数参数?

来自分类Dev

如何将用户输入的内容从HTML表单导入C程序

来自分类Dev

无法获取PHP脚本将用户输入写入文本文件

来自分类Dev

Java使用扫描仪将用户输入写入.txt文件

来自分类Dev

C#在将用户输入放入数组之前检查用户输入

来自分类Dev

如何在C#中将用户凭据与文本文件内容进行匹配

来自分类Dev

TKinter - 用户输入写入文件

来自分类Dev

如何将用户的输入限制为仅在 C++ 中输入数字和字母

来自分类Dev

根据用户输入打印文件内容

Related 相关文章

热门标签

归档