我最近开始学习C并且遇到了代码剪切的一点问题.
我想要想要读取一个字符串,20个字符长,超过stdin,所以我选择了fgets.
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
unsigned int length = 20;
char input_buffer[length];
fgets(input_buffer, length, stdin);
if(input_buffer == NULL)
printf("Error, input too long");
else
printf("%s", input_buffer);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
它编译没有任何错误,如果我输入一个短于20个字符的句子,一切都很好.但是当我尝试测试错误处理时,它失败了.
输出是:
peter@antartica ~/test % ./test
Hello world, this is a very long test
Hello world, this i%
Run Code Online (Sandbox Code Playgroud)
我做错了吗?我认为fgets如果失败会返回一个NULL指针(这应该是这种情况)?
感谢您的任何帮助.
我无法在 android 模拟器中使用 pdfbox 运行 pdf 文本提取。然而,当作为独立的 Java 应用程序运行时,代码运行良好。
使用了 PDFBOXv1.8.4 并使用 pdfbox jar 正确设置了构建路径。可能出现了什么问题?
此外,我还看到一些帖子建议不要使用 pdfbox,因为 android 库不支持 drawables(java.awt.*)。真的是这样吗?我是否仍然希望使用 pdfbox 解析我的简单 pdf 文件(仅文本)。
public static void PdftoText(InputStream input)
{
PDFParser parser ;
COSDocument cosDoc;
PDFTextStripper pdfStripper;
PDDocument pdDoc;
String parsedText;
try
{
parser = new PDFParser(input);
parser.parse();
cosDoc = parser.getDocument();
pdDoc = new PDDocument(cosDoc);
pdfStripper = new PDFTextStripper();
if(pdDoc != null){
pdfStripper.setWordSeparator(":");
parsedText = pdfStripper.getText(pdDoc);
System.out.println(parsedText);
}
}
catch(Exception e)
{
e.printStackTrace();
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
这是我得到的例外
03-26 …Run Code Online (Sandbox Code Playgroud)