标签: eol

使用boost :: spirit,我如何要求部分记录在自己的行上?

我有一个记录解析器,它会抛出几个异常中的一个来指示哪个规则失败了.

前面的事:

#include <iostream>
#include <sstream>
#include <stdexcept>
#include <string>

#include <boost/spirit/include/qi.hpp>
#include <boost/spirit/include/phoenix.hpp>
#include <boost/spirit/include/classic_position_iterator.hpp>

using namespace boost::spirit;
using namespace boost::spirit::ascii;
using namespace boost::spirit::qi;
using namespace boost::spirit::qi::labels;

using boost::phoenix::function;
using boost::phoenix::ref;
using boost::spirit::qi::eol;
using boost::spirit::qi::fail;
using boost::spirit::qi::lit;
using boost::spirit::qi::on_error;

using BOOST_SPIRIT_CLASSIC_NS::file_position;
using BOOST_SPIRIT_CLASSIC_NS::position_iterator;
Run Code Online (Sandbox Code Playgroud)

我们使用position_iterator来自Spirit.Classic,因此以下流插入运算符非常方便.

std::ostream&
operator<<(std::ostream& o, const file_position &fp)
{
  o << fp.file << ": " << fp.line << ',' << fp.column;
  return o;
}
Run Code Online (Sandbox Code Playgroud)

模板会err_t因为抛出与不同形式的解析失败相关的异常而触发样板.

template <typename Exception>
struct err_t { …
Run Code Online (Sandbox Code Playgroud)

c++ parsing eol boost-spirit boost-spirit-qi

6
推荐指数
1
解决办法
2284
查看次数

在C中是多字符吗?

我读到\n由CR和LF组成.每个都有自己的ASCII码.

那么C中的\n是由单个字符表示还是多字符?

编辑:请指定你的答案,而不是简单地说"是,它是""不,它不是"

c ascii cross-platform newline eol

6
推荐指数
3
解决办法
2695
查看次数

转换Mercurial存储库中的行尾模式

我有一个存储库,其中填充了带有Windows行尾标记的文件,但我打算使用Unix EOL模式.

一种选择是手动(dos2unix)更改所有文件,然后提交一个完全覆盖存储库的变更集.如果有必要,我可以这样做,但我想避免它.是否可以使用hg convert或以其他方式使用不同的EOL标记重建存储库?我考虑导出所有更改,转换这些更改,并以这种方式重建存储库,但Mercurial wiki建议不应该在合并更改集上信任导出,这似乎排除了该选项.

我想尽可能避免使用EOL扩展.

unix windows mercurial eol

6
推荐指数
1
解决办法
687
查看次数

CSS行尾字符

好吧,我想要的是:当<p>标签以</ p>结尾时,我想在该行的末尾添加一个字符.例如

<p>Something and more!</p>
Run Code Online (Sandbox Code Playgroud)

应该是这样的

还有更多东西!_

其中'_'(下划线)是添加的字符.
这可能与CSS有关吗?
是否也可以在一条线的末端?

css eol

6
推荐指数
1
解决办法
2019
查看次数

在C/C++中从文件读取数据直到行尾

阅读直到文件末尾是常见的,但我感兴趣的是如何从文本文件中读取数据(一系列数字)直到行尾?我的任务是从文件中读取几个数字系列,这些数字位于新行中.以下是输入示例:

1 2 53 7 27 8
67 5 2
1 56 9 100 2 3 13 101 78
Run Code Online (Sandbox Code Playgroud)

第一系列:1 2 53 7 27 8

第二个:67 5 2

第三名:1 56 9 100 2 3 13 101 78

我必须分别从文件中读取它们,但每个都要直到行尾.我有这个代码:

    #include <stdio.h>
    FILE *fp;
    const char EOL = '\\0';
    void main()
    {
        fp = fopen("26.txt", "r");
        char buffer[128];
        int a[100];
        int i = 0;
        freopen("26.txt","r",stdin);
        while(scanf("%d",&a[i])==1 && buffer[i] != EOL)
             i++;
        int n = i;
        fclose(stdin);
     }  
Run Code Online (Sandbox Code Playgroud)

它会一直读到文件的末尾,因此它没有达到我预期的效果.你有什么建议?

c fopen eol eof

6
推荐指数
1
解决办法
5万
查看次数

从CSV文件中删除或替换LF

我有一些巨大的csv文件,有时行结束LF而不是CRLF,即:

pippo LF
pluto CRLF
Run Code Online (Sandbox Code Playgroud)

我想有一条线 pippo pluto CRLF

我正在尝试在Windows 7下使用notepad ++,但我无法做到这一点......

csv notepad++ eol

6
推荐指数
2
解决办法
3万
查看次数

Javascript按行尾字符分割字符串并读取每一行

希望我不会复制现有的问题,但我真的找不到任何人在这里提出这个问题.我需要循环一个包含多个eol字符的大字符串,并读取这些行中的每一行以查找字符.我可以完成以下操作,但我觉得它效率不高,因为这个大字符串中可能有超过5000个字符.

var str = largeString.split("\n");
Run Code Online (Sandbox Code Playgroud)

然后通过str作为数组循环

我真的不能使用jquery,只能使用简单的JavaScript.

还有其他有效的方法吗?

javascript string split eol

6
推荐指数
1
解决办法
1万
查看次数

正则表达式匹配行尾 $ 在 Bash 脚本中不起作用

我正在尝试在 bash 脚本中执行一个简单的正则表达式语句,该语句将匹配并替换单词的结尾。下面是我正在尝试做的。

wordh > word:’
Run Code Online (Sandbox Code Playgroud)

下面是我正在使用的代码。

#!/bin/bash
STAT=${STAT/h$/:’}
Run Code Online (Sandbox Code Playgroud)

我不熟悉 bash 脚本,我认为它与 bash 有关系,$因为它用于标记变量。我试图逃避它以及/在它之后添加另一个。当我删除$它时(不检查单词的结尾)。

regex bash eol parameter-expansion

6
推荐指数
1
解决办法
972
查看次数

Spring库存有EOL(寿命结束)和EOVS(供应商支持终止)日期吗?

是否有任何EOL(寿命结束)和EOVS(供应商支持的结束)日期为春季启动,春季云,春季会议等春季文库?如果是,我在哪里可以找到每个版本的库的这些信息?

eol spring-boot spring-session spring-cloud

6
推荐指数
1
解决办法
2786
查看次数

在 Windows 上防止 Python print() 自动换行转换为 CRLF

我想通过 Windows CMD(控制台)从 Python 中使用类似 UNIX EOL (LF) 的管道文本。然而,Python 似乎会自动将单个换行符转换为 Windows 风格的行尾 (EOL)字符(即\r\n, <CR><LF>, 0D 0A, 13 10):

#!python3
#coding=utf-8
import sys
print(sys.version)
print("one\ntwo")
# run as py t.py > t.txt
Run Code Online (Sandbox Code Playgroud)

结果是

3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]
one
two
Run Code Online (Sandbox Code Playgroud)

或十六进制... 6F 6E 65 0D 0A 74 77 6F 0D 0A

第二个 EOL 是因为 print()默认为end='\n',但它也会进行转换。

print没有newline像 for 那样的参数或属性open(),那么如何控制它呢?

python windows newline eol

6
推荐指数
1
解决办法
5767
查看次数