c语言创建一个文本文件datadat,c - 为什么我不能使用Visual Studio在C语言中读取文本文件? - 堆栈内存溢出...

我创建了一个C程序,它逐个读取一个字符,并确定它是否是元音,数字,标点符号等。

用户可以选择通过键盘或文本文件输入字符。

第一部分工作正常,并按预期完成所有操作,但是,当我运行该程序并选择“从文件读取”选项时,它只是在“ else if”中打印出语句,而完全无法在文本文件中读取。

我将文本文件保存在Visual Studio 2015目录的'Source Files'文件夹中,我的代码如下(有问题的问题区域靠近底部):

#include "stdafx.h"

#include

#include

#include

FILE *pInputFile;

FILE *pOutputFile;

int answer = 0;

int chr = 0;

int numLowerCaseVowels = 0;

int numUpperCaseVowels = 0;

int numPunctuationChars = 0;

int numNumericals = 0;

int *pCharPointer;

int previousValue = 0;

int main()

{

// ##### KEYOBARD OR FILE INPUT #####

printf("\nKEYBOARD OR FILE INPUT?\n");

printf("Press 'k' for keyboard, 'f' for file.\n");

answer = _getch();

if (answer == 'k')

{

printf("You selected keyboard.\n\n");

printf("Enter a character.\n");

// ##### KEYBOARD INPUT #####

while ((chr = _getch()) != '\r')

{

pCharPointer = &chr;

printf("%c", chr);

// Determine if input is lower/upper case vowel.

switch (chr)

{

case 'a':

case 'e':

case 'i':

case 'o':

case 'u':

printf(" Lowercase Vowel.");

numLowerCaseVowels++;

break;

case 'A':

case 'E':

case 'I':

case 'O':

case 'U':

printf(" Uppercase Vowel.");

numUpperCaseVowels++;

break;

default:

break;

}

//Determine if char is punctuation.

if (_istpunct(chr))

{

printf(" Punctuation Character.");

numPunctuationChars++;

}

//Determine if char is numeric.

if (iswdigit(chr))

{

printf(" Numeric Character.");

numNumericals++;

}

//Determine if char is duplicate character.

if (previousValue == chr)

{

printf(" Duplicate Character.");

previousValue = *pCharPointer;

}

else

{

previousValue = *pCharPointer;

}

printf("\n");

}

}

// ##### PROBLEM AREA #####

else if (answer == 'f')

{

printf("You've chosen file.\n\n");

fopen_s(&pInputFile, "Text.txt", "r");

chr = getc(pInputFile);

while ((chr = getc(pInputFile)) != EOF)

{

printf("%c", chr);

}

fclose(pInputFile);

}

else

{

printf("Invalid Input. Exiting...\n");

exit(1);

}

// ##### ANALYSIS #####

printf("\nNumber of lowercase vowels: %d\n", numLowerCaseVowels);

printf("Number of uppercase vowels: %d\n", numUpperCaseVowels);

printf("Number of punctuation characters: %d\n", numPunctuationChars);

printf("Number of lowercase vowels: %d\n\n", numNumericals);

return 0;

}

对不起代码量,我认为最好包含整个源代码。

它实际上还没有对文本文件中的字符进行任何分析,我只是试图进入阶段,它将首先实际读取文件。 任何帮助,将不胜感激。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值