从文件读取时无法识别“ \ n”

时间:2019-10-30 17:14:26

标签: c++

初学者在这里,请耐心等待。因此,我正在从一个csv文件中读取数据,我需要逐字读取数据,然后在行尾停下来。这是代码。

fstream fops;
fops.open("file.csv");
string s;
do
{ 
  fops>>s;
}while(s!="\n");

但是,循环继续到下一行,直到文件结束。请帮我解决这个问题

3 个答案:

答案 0 :(得分:7)

  

我需要逐字读取数据并停在行尾。

class Device(models.Model):
"""

"""
user = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
deviceModel = models.CharField(max_length=128, verbose_name=_(u"Device Model"))
deviceId = models.CharField(max_length=128, verbose_name=_(u"Device ID"))
packageId = models.CharField(max_length=128, verbose_name=_(u"Package ID"))
tokenId = models.TextField(verbose_name=_(u"Token ID"))
platformId = models.CharField(max_length=10, verbose_name=_(u"Plataforma ID"))
created_at = models.DateTimeField(auto_now=True, verbose_name=_(u"Created"))
updated_at = models.DateTimeField(auto_now=True, verbose_name=_(u"Updated"))

def __str__(self):
    return u'Device: {0}'.format(self.deviceId)

def __unicode__(self):
    return self.__str__()

def send_logout(self):
    """
    Send logout Notification Message
    """
    active_session = ActiveSession.objects.filter(
        device=self
    ).first()

    if active_session:
        push_service = FCMNotification(api_key=settings.FCM_API_KEY)
        data_message = {
            "action": "Logout",
            "token_id": active_session.token_jwt
        }
        push_service.single_device_data_message(
            registration_id=self.tokenId,
            data_message=data_message,
            content_available=True
        )

答案 1 :(得分:2)

operator>>()忽略空格。使用getline()代替读取整行。或者,找到一个库来读取和解析CSV文件。

  

我想逐字阅读它,以便可以将每个单词分配给另一个变量。

使用operator>>()不能区分空格' '和换行'\n'。您应该阅读整行,然后将其解析为“单词”。

答案 2 :(得分:-4)

尝试“ \ n \ r”,请记住,某些操作系统使用不同的字符来返回