嘿伙计们,我一直试图解决这个问题一段时间了。我是编程的新手,因为我目前正在大学(Cegep)参加我的第一次课程。 Visual Studio 2012似乎跳过我的代码的一部分,我需要在 rehaussement = Convert.ToChar(Console.Read())中输入1或2; 它没有提示我输入内容。我在调试部分没有错误,这是我的代码:`
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//1464649 - Benjamin Lam
int nbPhotos;
char format;
char reponse;
char rehaussement;
float prix;
//Début
Console.WriteLine("Entrez le nombre de photos que vous voulez développer :");
nbPhotos = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Quel format désirez-vous pour les photosÉ Entrez :");
Console.WriteLine("p ou P pour petit format");
Console.WriteLine("g ou G pour grand format");
format = Convert.ToChar(Console.Read());
Console.WriteLine("Désirez-vous un rehaussement pour les photos? Entrez: ");
Console.WriteLine("o ou O pour oui");
Console.WriteLine("n ou N pour non");
reponse = Convert.ToChar(Console.Read());
if ((reponse == 'o') || (reponse == 'O'))
{
Console.WriteLine("Quel type de rehaussement désirez-vous? Entrez");
Console.WriteLine("1 pour noir");
Console.WriteLine("2 pour sepia");
rehaussement = Convert.ToChar(Console.Read());
}
else
{
rehaussement = '0';
}
//calcul du total a payer
if (nbPhotos < 50)
{
if ((format == 'p') || (format == 'P'))
{
prix = (nbPhotos * 0.15f);
}
else
{
prix = (nbPhotos * 0.25f);
}
if (rehaussement == '1')
{
prix = prix + nbPhotos * 0.75f;
}
else
{
if (rehaussement == '2')
{
prix = prix + nbPhotos * 0.50f;
}
}
}
else
{
if (nbPhotos <= 100)
{
if ((format == 'p') || (format == 'P'))
{
prix = nbPhotos * 0.10f;
}
else
{
prix = nbPhotos * 0.20f;
}
if (rehaussement == '1')
{
prix = prix + nbPhotos * 0.75f;
}
else
{
if (rehaussement == '2')
{
prix = prix + nbPhotos * 0.50f;
}
}
}
else
{
if ((format == 'p') || (format == 'P'))
{
prix = nbPhotos * 0.08f;
}
else
{
prix = nbPhotos * 0.16f;
}
if (rehaussement == '1')
{
prix = prix + nbPhotos * 0.50f;
}
else
{
if (rehaussement == '2')
{
prix = prix + nbPhotos * 0.25f;
}
}
}
}
//affichage de resultat
Console.WriteLine("Le nombre de photos développées est " + nbPhotos);
if ((format == 'p') || (format == 'P'))
{
Console.WriteLine("Le format choisi est PETIT");
}
else
{
Console.WriteLine("Le format choisi est GRAND");
}
if (rehaussement == '1')
{
Console.WriteLine("Le rehaussemenet choisi est NOIR et BLANC");
}
else
{
if (rehaussement == '2')
{
Console.WriteLine("Le rehaussement choisi est SEPIA");
}
else
{
Console.WriteLine("Aucun rehaussement choisi");
}
}
Console.WriteLine("Le prix à payer est" + prix + (" $"));
//Fin
}
}
}
` 自从我去法国大学(Cegep)以来,我的大多数东西都是法语。 如果有人可以帮我解决这个问题,我将不胜感激。
答案 0 :(得分:2)
尝试更改format = Convert.ToChar(Console.Read());
以改为使用ReadLine
。
原因是由于.Read
没有结束输入流的行为 - 按照msdn(参见备注部分)
http://msdn.microsoft.com/en-us/library/system.console.read(v=vs.110).aspx
答案 1 :(得分:1)
使用ReadLine()而不是Read():
format = Convert.ToChar(Console.ReadLine());