java中有cin格式吗,C中std :: cin对象的规则是什么?

我正在编写一个小程序,供我个人用来练习学习C及其功能,一个MLA引文生成器(我正在写一篇有几十次引用的大型论文) .

由于缺乏更好的方法(我不懂课程或在你的主要内部使用其他.cpp文件,所以不要打扰告诉我,当我有更多时间时我会继续工作),我正在写作每种引用的功能 . 如果我有更多的时间,我可能会将其分解为每个重用代码的函数 .

我的问题是:std :: cin对象是如何工作的?我目前正在使用std :: cin >>读取我希望成为单个单词的字符串,以及带有空格的字符串的getline(std :: cin,string) . 但是,我没有得到正确的输出 . 我只是想知道std :: cin如何工作以及为什么我会意外地跳过一些输入(例如,它跳过webPage而不是给我一个机会输入它) .

void webCit()

{

std::cout << "Leave any unknowns blank.\n";

std::cout << "Author last name: ";

std::string lastName;

std::cin >> lastName;

if (lastName.size() != 0)

{

lastName = lastName + ", ";

}

std::cout << "Author first name: ";

std::string firstName;

std::cin >> firstName;

if (firstName.size() != 0)

{

firstName = firstName + ". ";

}

std::cout << "Article title: ";

std::string articleTitle;

getline(std::cin, articleTitle);

if (articleTitle.size() != 0)

{

articleTitle = "\"" + articleTitle + ".\" ";

}

std::cout << "Title of web page: ";

std::string pageTitle;

std::cin >> pageTitle;

if(pageTitle.size() != 0)

{

pageTitle = pageTitle + ". ";

}

std::cout << "Publication date: ";

std::string publicationDate;

getline(std::cin, publicationDate);

if(publicationDate.size() != 0)

{

publicationDate = publicationDate + ". ";

}

std::cout << "Web address: ";

std::string webAddress;

getline(std::cin, webAddress);

webAddress = ". ";

std::cout << "Date accessed: ";

std::string dateAccessed;

getline(std::cin, dateAccessed);

if(dateAccessed.size() != 0)

{

dateAccessed = dateAccessed + ". ";

}

std::string citation =

lastName + firstName + articleTitle + pageTitle + publicationDate + webAddress + dateAccessed;

std::cout << citation; //TEST; remove after

}

编辑:I / O.

Leave any unknowns blank.

Author last name: Hooked

Author first name: Jerbear

Article title: Title of web page: title

Publication date: Web address: www.win.com

Date accessed: 4/29/09

Hooked, Jerbear. Title. . 4/29/09.

正如你所看到的,出现问题,因为我的输入被忽略了 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值