【发布时间】:2016-10-04 03:32:36
【问题描述】:
所以我是 C++ 新手。这个想法是它应该给用户两个选项,并且任何一个选项都读取用户的输入。但是,它们实际上都没有从用户那里读取任何输入,而是直接跳到程序的末尾。非常感谢任何帮助!谢谢。
(注意:我知道这与第一个“cin”输入“数字”有关)
#include <stdio.h>
#define SIZE 80
#include <iostream>
int main(void)
{
FILE * pFile;
int c; // variable to hold character input by user
char sentence[SIZE]; // create char array
char filename[SIZE]; //create filename array
int i = 0; // initialize counter i
int number;
std::cout << "Give a number. 1 for file. Anything else for standard.";
std::cin >> number;
std::cin.clear();
if(number==1)
{
puts("Enter filename to append: ");
while ((i < SIZE-1) && (c = getchar()) != '\n') {
filename[i++] = c;}
filename[i]= '\0';
//fgetc(sentence,80,stdin);
pFile=fopen(filename,"a");
puts("Give a sentence to place in file:");
while ((i < SIZE-1) && (c = getchar()) != '\n') {
sentence[i++] = c;}
sentence[i]= '\0';
fputs(sentence,pFile);
fclose(pFile);
do {
c = fgetc (pFile);
} while (c != EOF);
fclose (pFile);
}
else
{
// prompt user to enter line of text
puts("Enter a line of text:");
// use getchar to read each character
while ((i < SIZE-1) && (c = getchar()) != '\n') {
sentence[i++] = c;}
sentence[i]= '\0';
// terminate string
// use puts to display sentence
puts("\nThe line entered was:");
puts(sentence);
}
}
【问题讨论】:
-
不要越过溪流。使用
iostream或fputs, fopen and family。 -
不确定您的意思?有点 C++ 的新手......
-
另外,更喜欢
std::string而不是char数组。 -
std::getline与std::string一起使用将解决您的很多问题。 -
我还是迷路了。就像我说的,C++ 新手,这是我知道如何阅读句子或阅读文件的唯一方法。
标签: c++